Skip to content

特殊场景:创建接口实现类时,覆盖了c# 8.0 的接口默认实现方法 #223

Open
@fs7744

Description

@fs7744

该场景特殊,一般aop 使用场景应该佷难遇见

https://github.com/dotnetcore/AspectCore-Framework/blob/master/src/AspectCore.Core/Utils/ProxyGeneratorUtils.cs#L365

应该判断 method.IsAbstract

if (method.IsAbstract)
            {
                var methodBuilder = implTypeBuilder.DefineMethod(method.Name, InterfaceMethodAttributes,
                    method.CallingConvention, method.ReturnType,
                    method.GetParameters().Select(x => x.ParameterType).ToArray());
                var ilGen = methodBuilder.GetILGenerator();
                if (method.ReturnType != typeof(void))
                {
                    ilGen.EmitDefault(method.ReturnType);
                }
                ilGen.Emit(OpCodes.Ret);
                implTypeBuilder.DefineMethodOverride(methodBuilder, method);
            }

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions