问题列表 - 第6265页

如何在运行时找到当前函数的名称?

经过多年使用丑陋的MFC ASSERT宏,我终于决定抛弃它并创建最终的ASSERT宏.

我很好地获取文件和行号,甚至是失败的表达式.我可以显示带有这些的消息框,以及中止/重试/取消按钮.

当我按下Retry时,VS调试器会跳转到包含ASSERT调用的行(而不像某些其他ASSERT函数那样反汇编).所以这一切都非常有效.

但真正酷的是显示失败的函数的名称.

然后我可以决定是否调试它而不试图从文件名中猜出它的功能.

例如,如果我有以下功能:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
   ASSERT(lpCreateStruct->cx > 0);
   ...
}
Run Code Online (Sandbox Code Playgroud)

然后当ASSERT触发时,消息框将显示如下内容:

Function = CMainFrame::OnCreate
Run Code Online (Sandbox Code Playgroud)

那么,在运行时找到当前函数名的最简单方法是什么?

它不应该使用MFC或.NET框架,即使我确实使用这两者.
它应该尽可能便携.

c++ assert function

36
推荐指数
6
解决办法
5万
查看次数

TObject包含哪些数据?

TObject.InstanceSize返回8,但TObject没有声明任何数据成员.根据TObject.ClassType的实现,前4个字节可以解释为指向对象的TClass元数据的指针.任何人都知道其他4个字节的开销是什么?

编辑:显然这是D2009特有的.在旧版本中,它只有4个字节.

delphi object delphi-2009 tobject

8
推荐指数
1
解决办法
1741
查看次数

如何使用LinqToSQL/Entity Framework/NHibernate实现管道和过滤器模式?

在DAL Repository构建时,我偶然发现了一个名为Pipes and Filters的概念.我读到它在这里,在这里看到了一个截屏来自这里.我仍然不确定如何实现这种模式.从理论上讲,所有听起来都不错,但我们如何在企业场景中真正实现这一点呢?

如果您对问题中提到的数据映射器/ ORM的上下文中的此模式有任何资源,提示或示例,我将不胜感激.

提前致谢!!

linq-to-entities design-patterns pipes-filters linq-to-sql

5
推荐指数
1
解决办法
2984
查看次数

将对象数组复制到不同类型的数组

以前,我遇到了一个问题,试图在我的ASMX webservice和我的.aspx页面之间共享一个类型定义(webclient)

困惑于C#对象数组和隐式类型转换

据我所知,这个建议的"问题"可以通过将客户端中创建的对象数组复制到ASMX代理类定义的新对象数组来解决.

作为C#的新秀,我仍在努力完成这项简单的任务.以下是我的代码的更多部分(上一篇文章中的其他片段保持不变):

...这里是我填充"测试数据"的地方,我想传递给Web服务:

// create an array of MetaData objects
MetaData[] nvPairs = new MetaData[20];   // arbitrary length of 20 pairs

// create arbitrary MetaData objects in the array
nvPairs[0] = new MetaData("Grant Number", "2577-9912");
nvPairs[1] = new MetaData("OPEAnalyst", "Simpson");
Run Code Online (Sandbox Code Playgroud)

...这里我尝试一个函数从我的TRIMBrokerUtil命名空间中定义的"真实"类型(由于代理我不能完全使用)"复制"到该类型的代理版本:

protected TRIMBrokerASMXProxy.ASMXProxy.MetaData[] CopyMetaData(
    MetaData utilArray)
{
    TRIMBrokerASMXProxy.ASMXProxy.MetaData[] outArray = 
        new TRIMBrokerASMXProxy.ASMXProxy.MetaData[utilArray.Name.Length];
    int i;
    for (i = 0; i < utilArray.Name.Length; i++)
    {
        outArray[i].Name = utilArray.Name;
        outArray[i].Value = utilArray.Value;
    }
    return outArray;
}
Run Code Online (Sandbox Code Playgroud)

...然后在这里我尝试调用该函数(编译器在此行标记2个错误:

TRIMBrokerASMXProxy.ASMXProxy.MetaData[] kvData = …
Run Code Online (Sandbox Code Playgroud)

c# arrays object copying

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

DDD:SO标签.实体或值类型?

在域驱动设计的上下文中,StackOverflow标记(即ddd)是值对象还是实体?

编辑:

想象一下,你必须建立SO网站.您如何看待'标签'?

domain-driven-design

10
推荐指数
2
解决办法
1260
查看次数

如何在WebService中返回通用字典

根据搜索,我希望C#中的Web服务返回一个Dictionary:

Dictionary<int, string> GetValues(string search) {}
Run Code Online (Sandbox Code Playgroud)

Web服务编译很好,但是,当我尝试引用它时,我收到以下错误:"不支持,因为它实现了IDictionary."

¿我能做些什么来使这个工作?,任何不涉及返回DataTable的想法?

c# generics

27
推荐指数
3
解决办法
3万
查看次数

在"电子邮件提交"用例中验证用户

我正在构建一个系统,允许人们通过电子邮件提交文本和照片,以及网站上的标准访问.我试图权衡两种策略的安全优势,特别是用于验证用户提交的内容.这里他们如下:

  • 基于身份验证:为每个用户创建一个秘密电子邮件地址,并将其提交给用户提交.此策略的优势在于人们可以从可能使用不同邮件帐户设置的多个设备发送
  • 来自基于身份验证:仅接受来自用户数据库中注册的地址的电子邮件.这个想法是基于发送地址冒充注册用户是不切实际/困难的.

你能想到其他可能的解决方案吗?提出的策略对你来说最有意义吗?

email authentication

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

使用Powershell在Gac中注册文件

有没有一种简单的方法在PowerShell中(我想使用gacutil.exe)从文本文档中读取路径\程序集并在GAC中注册它?例如,一个.txt文件看起来像:

c:\test\myfile.dll
c:\myfile2.dll
d:\gac\gacthisfile.dll
Run Code Online (Sandbox Code Playgroud)

PowerShell脚本会将其读入流中,然后在找到的每个程序集上运行gacutil?我想这会是这样的:

#read files into array?

foreach ($file in Get-ChildItem -Filter "*.dll" )
{ 
  Write-Host $file.Name
  C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\gacutil.exe /nologo /i $file.Name
}
Run Code Online (Sandbox Code Playgroud)

powershell gac gacutil

13
推荐指数
2
解决办法
3万
查看次数

信号量排队

我正在扩展信号量的功能.当我意识到我不知道实际信号量的实现并确保我的代码正确运行时,我遇到了障碍,我需要知道这一点.

我知道信号量通过阻塞正在等待它的线程来调用sem_wait()而另一个线程当前已将其锁定.然后阻塞该线程,然后将其放入该信号量的等待列表中.

我的问题与sem_post()上发生的事情有关.是否将下一个线程从等待列表中拉出,设置为锁定线程,并允许解除阻塞?或者发布完全不同的方案?

谢谢!

c multithreading semaphore system blocking

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

将NSData写入文件的最简单方法

NSData *data;
data = [self fillInSomeStrangeBytes];
Run Code Online (Sandbox Code Playgroud)

我现在的问题是如何data以最简单的方式写入文件.

(我已经是NSURL了file://localhost/Users/Coding/Library/Application%20Support/App/file.strangebytes)

file-io cocoa file save

64
推荐指数
3
解决办法
8万
查看次数