gpt4 book ai didi

c# 泛型方法崩溃

转载 作者:行者123 更新时间:2023-12-03 16:15:00 25 4
gpt4 key购买 nike

我有一个托管在某处(webhostingworld.net)的应用程序,我有一个两难选择。我有一个工具(.net 4 anycpu 中的简单普通 exe)执行一些离线操作,它由“Parallel Plesk Panel 11.0.9”作为“计划任务”启动。一切都很顺利,直到我添加了一个通用方法。

  • 基本上,它只是一个从数据库中读取 json 字符串并返回它的虚拟方法;
  • 这个过程就这样结束了,没有抛出异常——我不得不把日志从一个地方放到另一个地方,我做的最后一件事是在调用这个方法和里面的第一件事之前把日志放在里面。调用这个方法之前的日志是有的,方法里面的日志是没有的;
  • 方法声明如下所示:
  • public T Get<T>(string id);
  • 我联系他们寻求一些反馈——也许他们在系统日志中看到了一些东西,但我怀疑他们会带来一些启示;
  • 在我的电脑上工作正常(不总是这样吗?);
  • 尝试编译所有 cpu 风格:x86、x64、anyCPU 并具有相同的行为...

  • 我没有主意了。我总是可以尝试使用通用对象(从代码大小 pov 来看,这可能是一个更好的想法 - 但这是另一个主题)......但这非常令人沮丧,因为我无法找到发生这种情况的充分理由......那么,关于发生了什么的任何想法?

    谢谢!

    更新:代码如下所示:
    public T Get<T>(string id)
    {
    Log.Debug("mary still has that little lamb");

    string jsonString = GetASimpleStringFromDatabase(id); // id has values like "ID", "TEMPPATH", "MAIL", etc;

    DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));

    using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
    {
    return ser.ReadObject(ms);
    }
    }

    电话看起来像这样:
    Log.Debug("Let's check if Mary has that little lamb");
    MyClass c = deserializer.Get<MyClass>(stuff);

    第一个记录语句出现(“让我们检查一下”),第二个(“仍然有”)没有。 .net 框架与我机器上的框架相同(至少在版本方面)。我想知道是否有一些我需要检查的标志,某事......

    更新 : 很抱歉,支持人员的 react 很慢。我对此没有答案。我将不使用"template"。 :-(

    最佳答案

    用户可能只安装了“客户端”.Net 4.0 运行时,而您可能正在使用需要“完整”.Net 4.0 运行时的功能。 See this有关差异的更多信息。

    此外,您可以尝试 Hook 未处理的异常事件以记录错误。 See this用于桌面应用程序和 this用于网络应用程序。

    如果一切都失败了,您可以开始排除应用程序的较低层以排除通信或其他原因。 (即,将数据库调用替换为对返回硬编码 JSON 字符串的模拟数据库的调用等)

    关于c# 泛型方法崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12878314/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com