You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Aug 27, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Aug 27, 2026. It is now read-only.
Generated files (e.g, Java.Interop.__TypeRegistrations.cs) should mark themselves as auto-generated #1051
Classic Xamarin.Android (MonoAndroid12.0, etc.), Android for .NET (net6.0-android, etc.)
Affected platform version
MonoAndroid13.0 and net6.0-android
Description
With a project where CA1812 and CA are enforced as errors, the following is observed:
##[error]src\Uno.UI.BindingHelper.Android\obj\Release\net6.0-android\generated\src\Java.Interop.__TypeRegistrations.cs(16,6): Error CA1825: Avoid unnecessary zero-length array allocations. Use Array.Empty<string>() instead.
C:\a\1\s\src\Uno.UI.BindingHelper.Android\obj\Release\net6.0-android\generated\src\Java.Interop.__TypeRegistrations.cs(16,6): error CA1825: Avoid unnecessary zero-length array allocations. Use Array.Empty<string>() instead. [C:\a\1\s\src\Uno.UI.BindingHelper.Android\Uno.UI.BindingHelper.Android.net6.csproj]
##[error]src\Uno.UI.BindingHelper.Android\obj\Release\net6.0-android\generated\src\Java.Interop.__TypeRegistrations.cs(18,6): Error CA1825: Avoid unnecessary zero-length array allocations. Use Array.Empty<Converter<string, Type>>() instead.
C:\a\1\s\src\Uno.UI.BindingHelper.Android\obj\Release\net6.0-android\generated\src\Java.Interop.__TypeRegistrations.cs(18,6): error CA1825: Avoid unnecessary zero-length array allocations. Use Array.Empty<Converter<string, Type>>() instead. [C:\a\1\s\src\Uno.UI.BindingHelper.Android\Uno.UI.BindingHelper.Android.net6.csproj]
##[error]src\Uno.UI.BindingHelper.Android\obj\Release\net6.0-android\generated\src\Uno.UI.UnoRecyclerView.cs(168,25): Error CA1812: 'UnoRecyclerViewInvoker' is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static members, make it 'static' (Module in Visual Basic).
C:\a\1\s\src\Uno.UI.BindingHelper.Android\obj\Release\net6.0-android\generated\src\Uno.UI.UnoRecyclerView.cs(168,25): error CA1812: 'UnoRecyclerViewInvoker' is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static members, make it 'static' (Module in Visual Basic). [C:\a\1\s\src\Uno.UI.BindingHelper.Android\Uno.UI.BindingHelper.Android.net6.csproj]
##[error]src\Uno.UI.BindingHelper.Android\obj\Release\net6.0-android\generated\src\Uno.UI.UnoViewGroup.cs(829,25): Error CA1812: 'UnoViewGroupInvoker' is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static members, make it 'static' (Module in Visual Basic).
C:\a\1\s\src\Uno.UI.BindingHelper.Android\obj\Release\net6.0-android\generated\src\Uno.UI.UnoViewGroup.cs(829,25): error CA1812: 'UnoViewGroupInvoker' is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static members, make it 'static' (Module in Visual Basic). [C:\a\1\s\src\Uno.UI.BindingHelper.Android\Uno.UI.BindingHelper.Android.net6.csproj]
These files should have // <auto-generated/> comment at the top so that Roslyn marks them as auto-generated and skips most analyzers for them.
Some examples of what a regular console .NET 6 program generates:
.NETCoreApp,Version=v6.0.AssemblyAttributes.cs:
// <autogenerated />usingSystem;
...
{application}.AssemblyInfo.cs:
//------------------------------------------------------------------------------// <auto-generated>// This code was generated by a tool.// Runtime Version:4.0.30319.42000//// Changes to this file may cause incorrect behavior and will be lost if// the code is regenerated.// </auto-generated>//------------------------------------------------------------------------------usingSystem;
...
Using the longer version could also help with issues like dotnet/android#7449.
Can you post a Java.Interop.__TypeRegistrations.cs that demonstrates the CA1825 warning? It looks like all the arrays should have content in them, unless your binding library doesn't bind any types or something? Or maybe all the types it binds are static?
Activity
jpobst commentedon Oct 18, 2022
Some examples of what a regular console .NET 6 program generates:
Using the longer version could also help with issues like dotnet/android#7449.
jpobst commentedon Oct 18, 2022
Can you post a
Java.Interop.__TypeRegistrations.csthat demonstrates the CA1825 warning? It looks like all the arrays should have content in them, unless your binding library doesn't bind any types or something? Or maybe all the types it binds arestatic?Example:
Youssef1313 commentedon Oct 18, 2022
@jpobst This is what I'm seeing:
[generator] Mark generated .cs files as generated (#1052)
Bump to xamarin/Java.Interop/main@5318261 (#7502)
[generator] Mark generated .cs files as generated (#1052)