我发现了以下代码:
public static class MimeHelper
{
public static string GetMimeType(string strFileName)
{
string retval;
switch (System.IO.Path.GetExtension(strFileName).ToLower())
{
case ".3dm": retval = "x-world/x-3dmf"; break;
case ".3dmf": retval = "x-world/x-3dmf"; break;
case ".a": retval = "application/octet-stream"; break;
// etc...
default: retval = "application/octet-stream"; break;
}
return retval;
}
}
Run Code Online (Sandbox Code Playgroud)
导致编译器创建这个无命名空的内部类(从Reflector复制):
<PrivateImplementationDetails>{621DEE27-4B15-4773-9203-D6658527CF2B}
- $$method0x60000b0-1 : Dictionary<String, Int32>
- Used By: MimeHelper.GetMimeType(String) : String
Run Code Online (Sandbox Code Playgroud)
这是为什么?我如何更改上面的代码,以免发生(只是出于兴趣)
谢谢
安德鲁
我有一个rails应用程序,我想同时使用memcached和文件存储缓存,用于不同的目的.
我想使用文件存储缓存来保留大量不经常更改的页面(有些根本不会更改) - 即页面缓存 - 并使用memcached进行其他操作(操作和数据库缓存等).原因是存储在文件存储缓存中的页面可能需要大量存储空间,但是大多数存储单元很少会被访问.
这是可能的,还是将memcached配置为缓存意味着它还用于页面缓存?
作为第二个问题,在某种形式的cron作业中从文件存储缓存中删除页面的安全方法是什么,因为似乎没有为此缓存指定ttl的选项.例如,UNIX查找命令可以快速查找并删除长时间未访问的所有旧页面或页面 - 如果应用程序服务器可能尝试在此时为其中一个页面提供服务,这样做是否安全(tho)这是不太可能的)?如果没有,那么最好的方法是什么.
我有一个类,C.C有一个成员变量声明为:bool markerStart;
从C内部调用sizeof(*this)给出的值为0x216字节.
在C的其他地方,我做:markerStart = false;
而不是将markerStart设置为false,这个调用实际上是在内存中破坏下一个类的开始!
看一下反汇编的代码,我发现:
markerStart = false;
06FB6B7F mov eax, dword ptr [this]
06FB6B78 mov byte ptr [eax+218h], 0
Run Code Online (Sandbox Code Playgroud)
第二个移动指令是将此+ 0x218处的字节设置为零,但由于该类仅为0x216字节长,因此这会破坏内存!
在回复评论时,肯定是markerStart = false指令.我可以在反汇编视图和内存视图中观察它(并使用Windbg,使用数据断点).下一个类的第一个字节被设置为零,这会弄乱它的vftbl指针.
注意:获取markerStart的地址并从中减去它,产生0x211!
任何人都可以给我一个线索,从哪里开始寻求解决这个问题?
更新:感谢您的帮助.没有代码,你几乎不可能解决问题.我正在寻找的是关于从哪里开始寻找的提示.大多数人提供了很好的提示,谢谢!
我终于找到了问题.在这种情况下,已在一个类中设置了对齐,并且在关键代码块之后未正确重置.具有错误对齐的类恰好在C类声明之前被编译 - 因此这就是问题出现的地方.
我可以使用NHibernate的ICriteriaAPI 选择随机行吗?
我正在尝试在Silverlight 2.0中制作一个简单的填字游戏.我正在研究一个UserControl-ish组件,它代表了拼图中的一个正方形.我将UserControl的属性与其元素绑定在一起时遇到了麻烦.我终于(有点)让它工作了(可能对某些人有所帮助 - 它花了我几个小时),但是想让它更"优雅".
我想象它应该有内容的隔间和标签(在右上角),可选地包含它的'数字.内容控件可能是TextBox,而标签控件可能是TextBlock.所以我用这个基本结构创建了一个UserControl(这个值在这个阶段是硬编码的):
<UserControl x:Class="XWord.Square"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
FontSize="30"
Width="100" Height="100">
<Grid x:Name="LayoutRoot" Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock x:Name="Label" Grid.Row="0" Grid.Column="1"
Text="7"/>
<TextBox x:Name="Content" Grid.Row="1" Grid.Column="0"
Text="A"
BorderThickness="0" />
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
我也在Square类中创建了DependencyProperties,如下所示:
public static readonly DependencyProperty LabelTextProperty;
public static readonly DependencyProperty ContentCharacterProperty;
// ...(static constructor with property registration, .NET properties
// omitted for brevity)...
Run Code Online (Sandbox Code Playgroud)
现在我想弄清楚如何将Label和Content元素绑定到两个属性.我是这样做的(在代码隐藏文件中):
Label.SetBinding( TextBlock.TextProperty, new Binding { Source = this, Path = new PropertyPath( "LabelText" ), Mode …Run Code Online (Sandbox Code Playgroud) 我假设这里的每个人都熟悉所有文本文件应以换行符结尾的格言.多年来我一直都知道这个"规则",但我一直在想 - 为什么?
如何使用HTML/CSS替换滚动条的图像?
我有:
scrollbar-base-color: #00acee;
scrollbar-dark-shadow-color: #00acee;
scrollbar-track-color: #ffffff;
scrollbar-face-color: #00acee;
scrollbar-shadow-color: #00acee;
scrollbar-highlight-color: #00acee;
scrollbar-3d-light-color: #00acee;
Run Code Online (Sandbox Code Playgroud)
我可以使用图像来实现相同的想法吗?
我正在为大学搜索开发网络搜索工具......
工具应该支持搜索大学...... 1.按课程2.按费用3.按名称
在那里我必须遵循任何数据库算法,使我的搜索如此高效...当大学数据增长如此之大时,我必须使用数据挖掘技术...请指导我...我真的很欢迎你的所有建议. ..
我想暂停一个线程,直到另一个线程完成初始化而不使用pthread_join.我尝试使用连接,但由于我们拥有一些异步的线程间通信系统,它会导致死锁.现在,我正在使用(自定义)锁来实现这一目标.
在线程1中:
lock_OfflineWorker.Lock()
if (pthread_create(&tid0, NULL, RunOfflineWorker, NULL) != 0)
{
}
lock_OfflineWorker.TryLock();
lock_OfflineWorker.Unlock();
Run Code Online (Sandbox Code Playgroud)
在线程2中:
bool OfflineWorker::Initialize()
{
lock_OfflineWorker.Unlock();
}
Run Code Online (Sandbox Code Playgroud)
但这是不优雅的,我不太确定副作用(另一种僵局的可能性).这个可以吗?如果没有,是否有另一种方法来实现这一点(使用锁或其他)
编辑:忘记包括"RunOfflineWorker"功能
void* RunOfflineWorker(void* pData)
{
g_OfflineWorker.Initialize();
}
Run Code Online (Sandbox Code Playgroud) 我可以使用TabItem.Background设置每个TabItem的背景,但是当选择该选项卡时,它是普通的香草白色.
如何设置聚焦的选项卡标题的样式?
<TabControl DockPanel.Dock="Top">
<TabControl.Background>
<LinearGradientBrush EndPoint="1.115,1.13" StartPoint="0,-0.02">
<GradientStop Color="#FFFFFFFF" Offset="1"/>
<GradientStop Color="#FFE0E376" Offset="0"/>
</LinearGradientBrush>
</TabControl.Background>
<TabItem Header="Allgem." Cursor="Hand">
<TabItem.Background>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFF3F3F3" Offset="0"/>
<GradientStop Color="#FFF11818" Offset="1"/>
</LinearGradientBrush>
</TabItem.Background>
<StackPanel DockPanel.Dock="Bottom" Width="400" HorizontalAlignment="Left" Margin="10">
...
Run Code Online (Sandbox Code Playgroud) c++ ×2
assembly ×1
c# ×1
caching ×1
css ×1
data-binding ×1
file ×1
html ×1
icriteria ×1
javascript ×1
newline ×1
nhibernate ×1
random ×1
search ×1
silverlight ×1
sizeof ×1
tabcontrol ×1
text-files ×1
unix ×1
xaml ×1