Skip to content

Commit 663b903

Browse files
authored
Merge pull request #157 from dotnet-campus/t/lindexi/Net45
重新加回 .NET Framework 4.5 的支持
2 parents 3dcef67 + b276be2 commit 663b903

File tree

3 files changed

+779
-9
lines changed

3 files changed

+779
-9
lines changed

src/dotnetCampus.Ipc/CompilerServices/GeneratedProxies/GeneratedIpcJoint.cs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ internal void SetInstance(TContract realInstance)
8787
/// <param name="methodInvoker">对接实现。</param>
8888
protected void MatchMethod(ulong memberId, Action methodInvoker)
8989
{
90-
_methods.Add(memberId, (Array.Empty<Type>(), _ =>
90+
_methods.Add(memberId, (EmptyTypeArray, _ =>
9191
{
9292
methodInvoker();
9393
return DefaultGarm;
@@ -102,7 +102,7 @@ protected void MatchMethod(ulong memberId, Action methodInvoker)
102102
/// <param name="methodInvoker">对接实现。</param>
103103
protected void MatchMethod<TReturn>(ulong memberId, Func<Garm<TReturn>> methodInvoker)
104104
{
105-
_methods.Add(memberId, (Array.Empty<Type>(), _ => methodInvoker()));
105+
_methods.Add(memberId, (EmptyTypeArray, _ => methodInvoker()));
106106
}
107107

108108
/// <summary>
@@ -112,7 +112,7 @@ protected void MatchMethod<TReturn>(ulong memberId, Func<Garm<TReturn>> methodIn
112112
/// <param name="methodInvoker">对接实现。</param>
113113
protected void MatchMethod(ulong memberId, Func<Task> methodInvoker)
114114
{
115-
_asyncMethods.Add(memberId, (Array.Empty<Type>(), async _ =>
115+
_asyncMethods.Add(memberId, (EmptyTypeArray, async _ =>
116116
{
117117
await methodInvoker().ConfigureAwait(false);
118118
return DefaultGarm;
@@ -127,7 +127,7 @@ protected void MatchMethod(ulong memberId, Func<Task> methodInvoker)
127127
/// <param name="methodInvoker">对接实现。</param>
128128
protected void MatchMethod<TReturn>(ulong memberId, Func<Task<Garm<TReturn>>> methodInvoker)
129129
{
130-
_asyncMethods.Add(memberId, (Array.Empty<Type>(), async _ => await methodInvoker().ConfigureAwait(false)));
130+
_asyncMethods.Add(memberId, (EmptyTypeArray, async _ => await methodInvoker().ConfigureAwait(false)));
131131
}
132132

133133
/// <summary>
@@ -145,6 +145,15 @@ protected void MatchMethod<T>(ulong memberId, Action<T> methodInvoker)
145145
));
146146
}
147147

148+
private static Type[] EmptyTypeArray
149+
150+
#if NET461_OR_GREATER || NETCOREAPP3_0_OR_GREATER
151+
=> Array.Empty<Type>();
152+
#else
153+
=> new Type[0];
154+
#endif
155+
156+
148157
/// <summary>
149158
/// 匹配一个 IPC 目标对象上的某个方法,使其他 IPC 节点访问此 IPC 对象时能执行 <paramref name="methodInvoker"/> 所指向的具体实现。
150159
/// </summary>
@@ -187,7 +196,7 @@ protected void MatchMethod<T, TReturn>(ulong memberId, Func<T, Task<Garm<TReturn
187196
/// <param name="getter">get 的对接实现。</param>
188197
protected void MatchProperty<T>(ulong getPropertyId, Func<Garm<T>> getter)
189198
{
190-
_propertyGetters.Add(getPropertyId, (Array.Empty<Type>(), () => getter()));
199+
_propertyGetters.Add(getPropertyId, (EmptyTypeArray, () => getter()));
191200
}
192201

193202
/// <summary>
@@ -199,7 +208,7 @@ protected void MatchProperty<T>(ulong getPropertyId, Func<Garm<T>> getter)
199208
/// <param name="setter">set 的对接实现。</param>
200209
protected void MatchProperty<T>(ulong getPropertyId, ulong setPropertyId, Func<Garm<T>> getter, Action<T> setter)
201210
{
202-
_propertyGetters.Add(getPropertyId, (Array.Empty<Type>(), () => getter()));
211+
_propertyGetters.Add(getPropertyId, (EmptyTypeArray, () => getter()));
203212
_propertySetters.Add(setPropertyId, (new[] { typeof(T) }, value => setter(CastArg<T>(value)!)));
204213
}
205214

0 commit comments

Comments
 (0)