c# - 为什么我在将可为 null 的整数设置为属性时遇到问题?

标签 c# asp.net .net-4.0 properties nullable

我对现有的一段 .NET 4 代码进行了修改,以创建一个由可为 null 的整数组成的新属性。它在 Windows 服务中运行。

    public static int? Port
    {
        get;
        set;
    }

这个概念是,如果值为 null,则忽略它,但如果不是,则使用它(非默认情况)

    if (Port != null)
    {
        client = new Client( Server, Port.Value );
    }
    else
    {
        client = new Client( Server );
    }

在我的机器上,它按预期工作。

但是,当部署到我们的测试服务器时,当从 ASP.NET 站点调用它时,我会遇到异常。这是格式化的异常输出:

Exception: System.MissingMethodException
Exception Message: Method not found: 'Void NameOfAssembly.set_Port(System.Nullable`1<Int32>)'.
Exception Data: System.Collections.ListDictionaryInternal
Exception TargetSite: ** Unable to GetValue **
Exception HelpLink: NULL

就好像代码没有正确部署,或者只是找不到自动获取/设置方法。一位同事进行了后续更改,该更改在我们的测试环境中确实有效,因此我认为这不是部署问题。

除了 Windows Server (2008 R2) 的运行方式可能与我开发它的 Windows 7 不同之外,我想不出会发生这种情况的任何原因,但这有点牵强。

有没有人以前见过这个?

最佳答案

听起来 ASP.NET 站点以某种方式使用了您的程序集的过时版本。如果此错误发生在已编译的代码中(而不是在 .aspx 页面中),则您可能已针对程序集的更新版本编译它,但部署它时未包含更新的程序集。

关于c# - 为什么我在将可为 null 的整数设置为属性时遇到问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6446843/

相关文章:

c# - (open generic type) 没有指定参数的 typeof 泛型类型

c# - 循环依赖和工厂方法的问题

c# - 适用于 Asp.net C# 的 PDF 或其他 "report viewer"选项

c# - 如何通过 LINQ 展平树?

.net-4.0 - 适用于 Windows 窗体的 Microsoft .NET Framework 4.0 JumpList/TaskbarItemInfo 示例

c# - 如何按日期部分订购?

c# - 比较两个类型为 T 的 System.Enum

c# - NLog 减慢并破坏了我的 ASP.net MVC 应用程序

asp.net - 非常大的 View 状态破坏网络应用程序

c# - 设置自动生成时在运行时访问Gridview中的数据?