问题列表 - 第6772页

为什么c#编译器会从此代码创建PrivateImplementationDetails?

我发现了以下代码:

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)

这是为什么?我如何更改上面的代码,以免发生(只是出于兴趣)

谢谢

安德鲁

c#

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

如何在rails中使用多个缓存?

我有一个rails应用程序,我想同时使用memcached和文件存储缓存,用于不同的目的.

我想使用文件存储缓存来保留大量不经常更改的页面(有些根本不会更改) - 即页面缓存 - 并使用memcached进行其他操作(操作和数据库缓存等).原因是存储在文件存储缓存中的页面可能需要大量存储空间,但是大多数存储单元很少会被访问.

这是可能的,还是将memcached配置为缓存意味着它还用于页面缓存?

作为第二个问题,在某种形式的cron作业中从文件存储缓存中删除页面的安全方法是什么,因为似乎没有为此缓存指定ttl的选项.例如,UNIX查找命令可以快速查找并删除长时间未访问的所有旧页面或页面 - 如果应用程序服务器可能尝试在此时为其中一个页面提供服务,这样做是否安全(tho)这是不太可能的)?如果没有,那么最好的方法是什么.

caching ruby-on-rails

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

sizeof(*this)给出错误的值

我有一个类,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类声明之前被编译 - 因此这就是问题出现的地方.

c++ assembly sizeof

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

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

将Silverlight UserControl自定义属性绑定到其元素

我正在尝试在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)

data-binding silverlight user-controls silverlight-2.0

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

为什么文本文件以换行符结尾?

我假设这里的每个人都熟悉所有文本文件应以换行符结尾的格言.多年来我一直都知道这个"规则",但我一直在想 - 为什么?

unix newline file text-files

1375
推荐指数
15
解决办法
21万
查看次数

如何使用滚动条图像?

如何使用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)

我可以使用图像来实现相同的想法吗?

html javascript css

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

数据库设计

我正在为大学搜索开发网络搜索工具......

工具应该支持搜索大学...... 1.按课程2.按费用3.按名称

在那里我必须遵循任何数据库算法,使我的搜索如此高效...当大学数据增长如此之大时,我必须使用数据挖掘技术...请指导我...我真的很欢迎你的所有建议. ..

search database-design

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

等待pthread_create完成而不使用pthread_join

我想暂停一个线程,直到另一个线程完成初始化而不使用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)

c++ multithreading

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

在XAML TabControl中,如何设置焦点选项卡标题的样式?

我可以使用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)

xaml tabcontrol

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