代码之家  ›  专栏  ›  技术社区  ›  John Merchant

PostSharp不能使用属性大于127的匿名类型

  •  3
  • John Merchant  · 技术社区  · 8 年前

    给定以下C中的代码#

     var obj = new
     {
         p0 = 0,
         p1 = 1
         p2 = 2,
         // and so on until 127 ...
         p127 = 127
     }
    

    我在尝试构建启用PostSharp的项目时出错:

    严重性代码说明项目文件行抑制状态
    错误错误:
    未处理的异常(4.3.25.0,postsharp-net40-x86-srv.exe,CLR 4.0.30319.394802,发行版):文件c:\users\johnm\documents\visual studio 2015\Projects\PostSharpTest\postsharp Test\obj\Debug\Before postsharp\PostShappTest。exe不是有效的.NET程序集。详见下文。PostSharpTest c:\users\johnm\documents\visual studio 2015\Projects\PostSharpTest\POSTSHARP测试\PostSharpest
    这是一个错误系统。BadImageFormatException:文件c:\users\johnm\documents\visual studio 2015\Projects\PostSharpTest\PostSharp Test\obj\Debug\Before PostSharp\PostShappTest。exe不是有效的.NET程序集--->PostSharp.Sdk。AssertionFailedException:类型签名中位置元素类型处枚举^Bw+U+DEY6J8e的值128无效。 在PostSharp.Sdk.Binary.ModuleReader中。ReadTypeSignature(BufferReader&_0) 在PostSharp.Sdk.Binary.ModuleReader中。ReadTypeSignature(BufferReader&_0) 在PostSharp.Sdk.Binary.ModuleReader中。ImportTypeSpec(Int32_0) 在PostSharp.Sdk.Binary.ModuleReader.ImportTypeSpecs()中 在PostSharp.Sdk.Binary.ModuleReader.ReadModule()中 在PostSharp.Sdk.Binary.ModuleReader.ReadModule()中 在PostSharp.Sdk.Binary.ModuleReader中。ReadModule(ReadModuleStrategy_0) 在PostSharp.Sdk.CodeModel.Domain。LoadAssembly(字符串assemblyLocation、LoadAssemblyOptions选项) 在PostSharp.Sdk.Extensibility.moduleAddirectFromFileStrategy。加载(域域) 在PostSharp.Sdk.Extensibility.Project中^LvMUl75+(模块吸附剂_0) 在PostSharp.Sdk.Extensibility.Project中^63o9P8x3(模块声明_0、模块策略_1、域_2、投影位置参数_3、布尔值_4) 在PostSharp.Sdk.Extensibility.Project中。CreateInstance(域域、项目位置和项目位置、布尔重用域) 在PostSharp.Hosting.PostSharpObject。InvokeProject(项目定位,项目定位) 在PostSharp.Hosting.Program。ExecuteImpl()PostSharpTest c:\users\johnm\documents\visual studio 2015\Projects\PostSharpTest\PostShappTest\PostSharpTest

    信息

    无效值 128 对于类型签名中位置元素类型处的枚举^Bw+U+DEY6J8e。

    似乎有一些意义,但我不熟悉PostSharp的内部结构。

    2 回复  |  直到 8 年前
        1
  •  1
  •   John Merchant    8 年前

    这已在PostSharp 4.3.27中修复

        2
  •  -1
  •   Taras M.    8 年前

    多播目标枚举

    可以应用多播自定义属性(MulticastAttribute)的目标类型。

    因此,对于InstanceConstructor,最大值为128

    Taken from here.