csharp: Suppress CA2000 in native wrappers.

Summary:
These methods may instantiate `IDisposable` classes like `Array`,
`Iterator` to pass to user-overriden C# methods. As we can't
guarantee the user stored the object or not, we can't call Dispose
directly on them.

Ref T8423

Depends on D10670

Reviewers: brunobelo, felipealmeida, YOhoho

Reviewed By: brunobelo

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8423

Differential Revision: https://phab.enlightenment.org/D10671
This commit is contained in:
Lauro Moura 2019-11-15 00:07:11 -03:00
parent fe8496cb6e
commit a0dd0b616a
2 changed files with 4 additions and 2 deletions

View File

@ -123,7 +123,8 @@ struct native_function_definition_generator
self = "";
if(!as_generator
(indent << "private static "
(indent << "[SuppressMessage(\"Microsoft.Reliability\", \"CA2000:DisposeObjectsBeforeLosingScope\", Justification = \"The instantiated objects can be stored in the called Managed API method.\")]\n"
<< indent << "private static "
<< eolian_mono::marshall_type(true) << " "
<< string
<< "(System.IntPtr obj, System.IntPtr pd"

View File

@ -171,7 +171,8 @@ run(options_type const& opts)
"using System.Collections.Generic;\n"
"using System.Linq;\n"
"using System.Threading;\n"
"using System.ComponentModel;\n")
"using System.ComponentModel;\n"
"using System.Diagnostics.CodeAnalysis;\n")
.generate(iterator, efl::eolian::grammar::attributes::unused, efl::eolian::grammar::context_null()))
{
throw std::runtime_error("Failed to generate file preamble");