小编use*_*625的帖子

任何绕过"对话必须是用户启动的"例外的方法?

我的应用程序有一个"打开文件"按钮.在启动OpenFileDialog之前,它会询问用户是否要保存当前文件,如果是,则启动SaveFileDialog.然后它启动OpenFileDialog.很标准的东西.

我的问题是Silverlight然后看到OpenFileDialog.ShowDialog()方法不是用户启动的,我得到一个SecurityException.

是否有任何已知的合理方法可以避免此异常?当然这是一个非常标准的场景?

该应用程序位于浏览器中.

欢迎任何想法

编辑:

对不起,不允许发布实际代码:(逻辑非常简单:在伪造的代码中,'OpenFile'按钮按下事件调用一个方法,如:

*发出新的SL消息,询问是否先保存.

*在消息窗口中是/否单击: - 如果否,转到加载 - 如果是,则启动SaveFileDialog.ShowDialog(),转到加载

*加载:启动打开文件对话框

编辑2:迷你程序......

主页的XML内容:

<Grid x:Name="LayoutRoot" Background="White">
    <Button Content="Open" Click="Button_Click"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)

码:

using System.Windows;
using System.Windows.Controls;

namespace SilverlightApplication15
{
public partial class MainPage : UserControl
{
    AskWindow aw = new AskWindow();

    public MainPage()
    {
        InitializeComponent();
        aw.Closed += new System.EventHandler(aw_Closed);
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        aw.Show();
    }

    private void aw_Closed(object sender, System.EventArgs e)
    {
        if (aw.DialogResult == true)
        {
            SaveFileDialog svd = new SaveFileDialog();
            svd.ShowDialog();
        } …
Run Code Online (Sandbox Code Playgroud)

c# silverlight openfiledialog savefiledialog

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

反射使 HashCode 不稳定

在以下代码中,访问 a 的自定义属性会SomeClass导致哈希函数SomeAttribute变得不稳定。这是怎么回事?

static void Main(string[] args)
{
    typeof(SomeClass).GetCustomAttributes(false);//without this line, GetHashCode behaves as expected

    SomeAttribute tt = new SomeAttribute();
    Console.WriteLine(tt.GetHashCode());//Prints 1234567
    Console.WriteLine(tt.GetHashCode());//Prints 0
    Console.WriteLine(tt.GetHashCode());//Prints 0
}


[SomeAttribute(field2 = 1)]
class SomeClass
{
}

class SomeAttribute : System.Attribute
{
    uint field1=1234567;
    public uint field2;            
}
Run Code Online (Sandbox Code Playgroud)

更新:

现在已将此作为错误报告给 MS。 https://connect.microsoft.com/VisualStudio/feedback/details/3130763/attibute-gethashcode-unstable-if-reflection-has-been-used

更新 2:

此问题现已在 dotnetcore 中得到解决:https : //github.com/dotnet/coreclr/pull/13892

c# reflection hash custom-attributes

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