小编smw*_*dia的帖子

我可以通过C#中的堆栈跟踪获取方法局部变量吗?

我想得到一个关于我的堆栈跟踪的详细日志.我可以获得一个StackFrame,然后获取该方法,然后获取该方法的所有参数.就像下面的代码一样:

            StackTrace st = new StackTrace();
            StackFrame[] sfs = st.GetFrames();
            foreach (StackFrame sf in sfs)
            {
                MethodBase method = sf.GetMethod();
                ParameterInfo[] pis = method.GetParameters();
                foreach (ParameterInfo pi in pis)
                {
                      ....
                }
                Console.WriteLine(method.Name);
            }
Run Code Online (Sandbox Code Playgroud)

但是如何在方法中获取局部变量信息呢?

有人会对我有所了解吗?

非常感谢.

.net c#

7
推荐指数
1
解决办法
1641
查看次数

AH = 2的BIOS INT 13H每次只能读取72个扇区.为什么?

我正在使用Bochs 2.4.5编写引导扇区代码.我使用INT 13H从软盘读取扇区.但我发现如果扇区计数读数> 72,则INT13将失败.返回码为AH = 1.下面是代码,这里是INT13.返回码为AH = 1.

为什么INT 13H不能读取超过72个扇区?

   xorb %ah, %ah
   xorb %dl, %dl
   int $0x13      # reset the floppy

   movw $0x8000, %ax
   movw %ax,%es        
   movw $0, %bx  # ES:BX is the buffer  
   movb $0x02, %ah
   movb $73, %al # how many sectors to read. 72 is ok, but >=73 is wrong.
   movb $0, %ch
   movb $1, %cl
   movb $0, %dh
   movb $0, %dl

   int $0x13
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

更新

按照Matthew Slattery的指示,我找到了相应的代码.我在这里列出的其他人和我一样困惑.完整代码位于此处.

7220       if …
Run Code Online (Sandbox Code Playgroud)

c operating-system dos bios

7
推荐指数
1
解决办法
2913
查看次数

代码访问安全是一个笑话?

我刚刚阅读了有关代码访问安全性的这篇文章.它有这样一个例子:

using System.Security.Permissions;
public class MyFileAccessor 
{
  public MyFileAccessor(String path, bool readOnly)
  {
    path = MakeFullPath(path); // helper fcn
    FileIOPermissionAccess desiredAccess = readOnly
      ? FileIOPermissionAccess.Read
      : FileIOPermissionAccess.AllAccess;
    FileIOPermission p = new FileIOPermission(desiredAccess, path);
    p.Demand();
    // 
    ••• 
    open the file
   }
   // •••
}
Run Code Online (Sandbox Code Playgroud)

如果我没有使用FileIOPermissionAccess类型并且在我的代码中从不包含像p.Demand()这样的代码怎么办?换句话说,如果我想做坏事,我为什么要费心去做那个? 这不是一个笑话吗?或者我错了吗?

.net security clr code-access-security

7
推荐指数
1
解决办法
613
查看次数

GetModuleHandle()如何工作?

我正在阅读<windows via c/c ++>,它描述了GetModuleHandle()API,如下所示:

当您调用此函数时,您传递一个以零结尾的字符串,该字符串指定加载到调用进程的地址空间中的可执行文件或DLL文件的名称.如果系统找到指定的可执行文件或DLL名称,GetModuleHandle将返回加载该可执行文件或DLL文件映像的基址.

我想知道系统在哪里查找文件名?当我将一些文件加载​​到我的进程地址空间时,是否有一些集中表来存储所有已加载文件的名称及其加载地址的映射?如果我们根据字符串匹配进行搜索,那么效率会低吗?

非常感谢你的诅咒.

windows

7
推荐指数
2
解决办法
8893
查看次数

并发请求到底意味着什么?

当我们谈论Web应用程序的容量时,我们经常提到它可以处理的并发请求.

正如我讨论的另一个问题,以太网使用TDM(时分复用),并且没有2个信号可以同时通过线路.因此,如果Web服务器通过以太网连接连接到外部世界,那么根本就没有并发请求.所有请求都会一个接一个地发出.

但是如果网络服务器通过类似无线网卡的方式连接到外部世界,我相信多个信号可以通过电磁波同时到达.只有在这种情况下,才会有真正的并发请求.

我对吗?

谢谢.

networking network-programming

7
推荐指数
2
解决办法
1万
查看次数

C#中是否有任何词性标注器?

我对数据聚类的数据预处理需要词性(POS)标记.我想知道C#中是否有一些库准备就绪.

c# nlp text-mining part-of-speech

7
推荐指数
1
解决办法
3149
查看次数

MEF 2中的"缺少依赖"异常

我正在研究MEF 2.下面的代码抛出异常:

System.Composition.TypedParts.dll中发生未处理的"System.Composition.Hosting.CompositionFailedException"类型异常

附加信息:在'MEFStudy.Program'上缺少依赖'MessageSenders'.

调用SatisfyImports()方法时.为什么?

using System;
using System.Collections.Generic;
using System.Composition;
using System.Composition.Hosting;


using System.Reflection;

namespace MEFStudy
{
    class Program
    {
        static void Main(string[] args)
        {
            Program p = new Program();
            p.Run();
        }

        [ImportMany]
        private List<IMessageSender> MessageSenders { get; set; }

        public void Run()
        {
            Compose();
            foreach (IMessageSender sender in MessageSenders)
            {
                sender.Send();
            }

        }

        private void Compose()
        {
            CompositionHost host = new ContainerConfiguration().WithAssembly(Assembly.GetExecutingAssembly()).CreateContainer();
            host.SatisfyImports(this);   // <=========== HERE
            host.Dispose();

        }
    }

    public interface IMessageSender
    {
        void Send();
    }

    [Export(typeof(IMessageSender))]
    public …
Run Code Online (Sandbox Code Playgroud)

.net mef

7
推荐指数
1
解决办法
532
查看次数

为什么在printf()调用中可以错过逗号?

我习惯于C#或Java.

以下陈述如何在C中正确?

printf("aaa" "bbb");

在我的Xubuntu 15.04上使用GCC 4.9.它输出:

aaabbb

正如我尝试的那样,下面也是如此!

CHAR *p = "aaa""bbb""ccc";
printf(p);
Run Code Online (Sandbox Code Playgroud)

它输出:

aaabbbccc
Run Code Online (Sandbox Code Playgroud)

我认为应该有一个逗号但是以这种方式,第一个字符串将被视为格式字符串.那么,这种语法合法吗?

c

7
推荐指数
3
解决办法
215
查看次数

如何在Spring中添加带有WebMvcConfigurerAdapter的Filter?

有了WebApplicationInitializer,我可以轻松地ServletContextonStartup()方法中添加一个过滤器.

如何添加过滤器WebMvcConfigurerAdapter?我必须使用XML吗?

添加1

为了帮助其他人更轻松地理解Spring Web配置,我绘制了下面的插图.

现在您只需要首先了解rationalSpring Web配置的背后.然后选择要继承的配置类以及从下面覆盖的方法.

查找它比记住这么多东西要痛苦得多.

在此输入图像描述

关于Spring Web Initialization的一篇很好的文章:

http://www.kubrynski.com/2014/01/understanding-spring-web-initialization.html

添加2

根据Tunaki我的回复,我查了一下AbstractDispatcherServletInitializer.过滤器注册发生在以下代码中:

在此输入图像描述

即使我覆盖绿色getServletFilters()方法,我仍然无法访问Dyanmic结果registerServletFilter().那么如何配置过滤器addMappingForUrlPatterns()呢?

我似乎have to覆盖了整个registerDispatcherServlet()方法.

spring spring-mvc servlet-filters

7
推荐指数
1
解决办法
2万
查看次数

关于数据库事务日志的问题

我读了以下声明:

SQL Server不会立即将数据写入磁盘.它保存在缓冲区缓存中,直到此缓存已满或直到SQL Server发出检查点,然后写出数据.如果在缓存仍在填满时发生电源故障,则该数据将丢失.但是,一旦电源恢复,SQL Server将从其上一个检查点状态开始,并且将在事务日志中执行作为成功事务记录的最后一个检查点之后的任何更新.

并出现了几个问题:

  1. 如果 SQL Server发出检查点之后和缓冲区高速缓存被执行写入磁盘之前发生电源故障怎么办?缓冲区缓存中的内容是否永久丢失?

  2. 事务日志也存储为磁盘文件,与实际数据库文件没有区别.那么我们怎样才能保证日志文件的完整性呢?

那么,真的没有真正的交易存在吗?这只是概率问题.

database sql-server

6
推荐指数
1
解决办法
1526
查看次数