Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
LicFileLicenseProvider.cs
Go to the documentation of this file.
1
using
System.ComponentModel.Design
;
2
using
System.Diagnostics.CodeAnalysis
;
3
using
System.IO
;
4
5
namespace
System.ComponentModel
;
6
7
public
class
LicFileLicenseProvider
:
LicenseProvider
8
{
9
private
sealed
class
LicFileLicense
:
License
10
{
11
private
readonly
LicFileLicenseProvider
_owner
;
12
13
public
override
string
LicenseKey
{
get
; }
14
15
public
LicFileLicense
(
LicFileLicenseProvider
owner,
string
key
)
16
{
17
_owner
= owner;
18
LicenseKey
=
key
;
19
}
20
21
public
override
void
Dispose
()
22
{
23
GC
.
SuppressFinalize
(
this
);
24
}
25
}
26
27
protected
virtual
bool
IsKeyValid
(
string
?
key
,
Type
type
)
28
{
29
return
key
?.StartsWith(
GetKey
(
type
)) ??
false
;
30
}
31
32
protected
virtual
string
GetKey
(
Type
type
)
33
{
34
return
type.FullName +
" is a licensed component."
;
35
}
36
37
[UnconditionalSuppressMessage(
"SingleFile"
,
"IL3002:RequiresAssemblyFiles"
, Justification =
"Only used for when Location is non-empty"
)]
38
[UnconditionalSuppressMessage(
"SingleFile"
,
"IL3000:RequiresAssemblyFiles"
, Justification =
"Location is checked for empty"
)]
39
public
override
License
?
GetLicense
(
LicenseContext
context,
Type
type
,
object
? instance,
bool
allowExceptions)
40
{
41
LicFileLicense
licFileLicense =
null
;
42
if
(context !=
null
)
43
{
44
if
(context.
UsageMode
==
LicenseUsageMode
.Runtime)
45
{
46
string
savedLicenseKey = context.
GetSavedLicenseKey
(
type
,
null
);
47
if
(savedLicenseKey !=
null
&&
IsKeyValid
(savedLicenseKey,
type
))
48
{
49
licFileLicense =
new
LicFileLicense
(
this
, savedLicenseKey);
50
}
51
}
52
if
(licFileLicense ==
null
)
53
{
54
string
text
=
null
;
55
if
(context !=
null
)
56
{
57
ITypeResolutionService
typeResolutionService = (
ITypeResolutionService
)context.
GetService
(typeof(
ITypeResolutionService
));
58
if
(typeResolutionService !=
null
)
59
{
60
text
= typeResolutionService.
GetPathOfAssembly
(
type
.Assembly.GetName());
61
}
62
}
63
if
(
type
.Assembly.Location.Length != 0)
64
{
65
if
(
text
==
null
)
66
{
67
text
=
type
.Module.FullyQualifiedName;
68
}
69
string
directoryName =
Path
.
GetDirectoryName
(
text
);
70
string
path = directoryName +
"\\"
+ type.FullName +
".lic"
;
71
if
(
File
.
Exists
(path))
72
{
73
Stream
stream
=
new
FileStream
(path,
FileMode
.Open,
FileAccess
.Read,
FileShare
.Read);
74
StreamReader
streamReader =
new
StreamReader
(
stream
);
75
string
key
= streamReader.
ReadLine
();
76
streamReader.
Close
();
77
if
(
IsKeyValid
(
key
,
type
))
78
{
79
licFileLicense =
new
LicFileLicense
(
this
,
GetKey
(
type
));
80
}
81
}
82
if
(licFileLicense !=
null
)
83
{
84
context.
SetSavedLicenseKey
(
type
, licFileLicense.
LicenseKey
);
85
}
86
}
87
}
88
}
89
return
licFileLicense;
90
}
91
}
System.ComponentModel.LicFileLicenseProvider.LicFileLicense.LicFileLicense
LicFileLicense(LicFileLicenseProvider owner, string key)
Definition
LicFileLicenseProvider.cs:15
System.ComponentModel.LicFileLicenseProvider.LicFileLicense._owner
readonly LicFileLicenseProvider _owner
Definition
LicFileLicenseProvider.cs:11
System.ComponentModel.LicFileLicenseProvider.LicFileLicense.LicenseKey
override string LicenseKey
Definition
LicFileLicenseProvider.cs:13
System.ComponentModel.LicFileLicenseProvider.LicFileLicense.Dispose
override void Dispose()
Definition
LicFileLicenseProvider.cs:21
System.ComponentModel.LicFileLicenseProvider.LicFileLicense
Definition
LicFileLicenseProvider.cs:10
System.ComponentModel.LicFileLicenseProvider.GetLicense
override? License GetLicense(LicenseContext context, Type type, object? instance, bool allowExceptions)
Definition
LicFileLicenseProvider.cs:39
System.ComponentModel.LicFileLicenseProvider.GetKey
virtual string GetKey(Type type)
Definition
LicFileLicenseProvider.cs:32
System.ComponentModel.LicFileLicenseProvider.IsKeyValid
virtual bool IsKeyValid(string? key, Type type)
Definition
LicFileLicenseProvider.cs:27
System.ComponentModel.LicFileLicenseProvider
Definition
LicFileLicenseProvider.cs:8
System.ComponentModel.LicenseContext.UsageMode
virtual LicenseUsageMode UsageMode
Definition
LicenseContext.cs:7
System.ComponentModel.LicenseContext.GetService
virtual ? object GetService(Type type)
Definition
LicenseContext.cs:14
System.ComponentModel.LicenseContext.SetSavedLicenseKey
virtual void SetSavedLicenseKey(Type type, string key)
Definition
LicenseContext.cs:19
System.ComponentModel.LicenseContext.GetSavedLicenseKey
virtual ? string GetSavedLicenseKey(Type type, Assembly? resourceAssembly)
Definition
LicenseContext.cs:9
System.ComponentModel.LicenseContext
Definition
LicenseContext.cs:6
System.ComponentModel.LicenseProvider
Definition
LicenseProvider.cs:4
System.ComponentModel.License
Definition
License.cs:4
System.GC.SuppressFinalize
static void SuppressFinalize(object obj)
Definition
GC.cs:202
System.GC
Definition
GC.cs:8
System.IO.FileStream
Definition
FileStream.cs:11
System.IO.File.Exists
static bool Exists([NotNullWhen(true)] string? path)
Definition
File.cs:97
System.IO.File
Definition
File.cs:15
System.IO.Path.GetDirectoryName
static ? string GetDirectoryName(string? path)
Definition
Path.cs:121
System.IO.Path
Definition
Path.cs:8
System.IO.StreamReader.Close
override void Close()
Definition
StreamReader.cs:259
System.IO.StreamReader.ReadLine
override? string ReadLine()
Definition
StreamReader.cs:648
System.IO.StreamReader
Definition
StreamReader.cs:9
System.IO.Stream
Definition
Stream.cs:11
System.Type
Definition
Type.cs:14
System.ComponentModel.Design.ITypeResolutionService.GetPathOfAssembly
string? GetPathOfAssembly(AssemblyName name)
System.ComponentModel.Design.ITypeResolutionService
Definition
ITypeResolutionService.cs:7
System.ComponentModel.Design
Definition
DesignerSerializerAttribute.cs:1
System.ComponentModel.LicenseUsageMode
LicenseUsageMode
Definition
LicenseUsageMode.cs:4
System.ComponentModel
Definition
ColumnAttribute.cs:3
System.Diagnostics.CodeAnalysis
Definition
AllowNullAttribute.cs:1
System.IO.FileAccess
FileAccess
Definition
FileAccess.cs:5
System.IO.FileShare
FileShare
Definition
FileShare.cs:5
System.IO.FileMode
FileMode
Definition
FileMode.cs:4
System.IO
Definition
ConsoleStream.cs:3
System.ExceptionArgument.text
@ text
System.ExceptionArgument.key
@ key
System.ExceptionArgument.type
@ type
System.ExceptionArgument.stream
@ stream
source
System.ComponentModel.TypeConverter
System.ComponentModel
LicFileLicenseProvider.cs
Generated by
1.10.0