Teikei.Interfaced
1.1.0
dotnet add package Teikei.Interfaced --version 1.1.0
NuGet\Install-Package Teikei.Interfaced -Version 1.1.0
<PackageReference Include="Teikei.Interfaced" Version="1.1.0" />
<PackageVersion Include="Teikei.Interfaced" Version="1.1.0" />
<PackageReference Include="Teikei.Interfaced" />
paket add Teikei.Interfaced --version 1.1.0
#r "nuget: Teikei.Interfaced, 1.1.0"
#:package Teikei.Interfaced@1.1.0
#addin nuget:?package=Teikei.Interfaced&version=1.1.0
#tool nuget:?package=Teikei.Interfaced&version=1.1.0
Teikei.Interfaced
Source Generator that provides an interface for public members of a type. Simply attach an attribute to a type. By default generated interface will only contain members defined explicitly, and not defined in different implemented interfaces.
using Teikei;
namespace TestNamespace;
using System;
[Interfaced]
public partial class YourClass
{
public readonly string YourMethod() => $""Output {YourProperty}"";
public int YourProperty { get; set; }
public event EventHandler YourEvent;
public readonly int this[string a] => YourProperty;
}
generates following code:
// <auto-generated />
namespace TestNamespace
{
public interface IYourClass
{
string YourMethod();
int YourProperty { get; set; }
event global::System.EventHandler YourEvent;
int this[string a] { get; }
}
public partial class YourClass : IYourClass
{
}
}
By default, generated interface will not contain members already declared in other implemented interfaces and/or base class.
This can be adjusted via SkipOverlappingMembers parameter:
[Interfaced(SkipOverlappingMembers: false)]
public partial class YourClass
{
}
Likewise, generated interface will be declared as internal if class is.
You can force interface to be public with ForcePublicAccessibility parameter:
[Interfaced(ForcePublicAccessibility: true)]
public partial class YourClass
{
}
| 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.