Devris.LibDevris.MethodSinter
0.9.3
dotnet add package Devris.LibDevris.MethodSinter --version 0.9.3
NuGet\Install-Package Devris.LibDevris.MethodSinter -Version 0.9.3
<PackageReference Include="Devris.LibDevris.MethodSinter" Version="0.9.3" />
<PackageVersion Include="Devris.LibDevris.MethodSinter" Version="0.9.3" />
<PackageReference Include="Devris.LibDevris.MethodSinter" />
paket add Devris.LibDevris.MethodSinter --version 0.9.3
#r "nuget: Devris.LibDevris.MethodSinter, 0.9.3"
#:package Devris.LibDevris.MethodSinter@0.9.3
#addin nuget:?package=Devris.LibDevris.MethodSinter&version=0.9.3
#tool nuget:?package=Devris.LibDevris.MethodSinter&version=0.9.3
Requirement
If you use Visual Studio it should be 2019 or after.
How to use
With code below, implementation of void PartialConstructor(int, string), which calls
PartialConstructor_Part0() and PartialConstructor_Part1() will be automatically generated.
// Class1.cs
partial class Class1
{
public Class1(int arg1, string arg2)
{
PartialConstructor(arg1, arg2);
}
[SinteredMethod(nameof(PartialConstructor))]
partial void PartialConstructor(int arg1, string arg2);
[MethodFragment(nameof(PartialConstructor))]
private void PartialConstructor_Part0(int arg1, string arg2)
{
// Do something
}
}
// Class1.Part1.cs
partial class Class1
{
[MethodFragment(nameof(PartialConstructor))]
private void PartialConstructor_Part1(int arg1, string arg2)
{
// Do something
}
}
// <auto-generated>
// Class1.PartialConstructor.g.cs
// <auto-generated/>
partial class Class1
{
partial void PartialConstructor(int arg1, string arg2)
{
PartialConstructor_Part1(arg1, arg2);
PartialConstructor_Part0(arg1, arg2);
}
}
Restrictions and Technical Limitations.
The following conditions apply to your code to make this working properly;
- The method definition with
SinteredMethodattribute,- MUST be
partialwithout implementation. - MUST return
void. - SHOULD NOT have any
outparameter. - MUST NOT have
abstractorexternmodifier.
- MUST be
- The methods with
MethodFragmentattribute,- MUST be callable with input arguments of corresponding
SinteredMethod.- Parameters MUST have same modifier(except
params) ifSinteredMethod's matching parameter have one.
- Parameters MUST have same modifier(except
- SHOULD NOT have behavior that can affect, or be affected by other
MethodFragments' behavior.
- MUST be callable with input arguments of corresponding
"MUST": if not met, compile would fail.
"SHOULD": if not met, behavior would be generated-implementation-specific.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Check https://github.com/ruby3141/LibDevris.MethodSinter/releases for changes.