小编Gon*_*ing的帖子

如何使用Selenium对Silverlight进行自动化测试?

我正在寻找一种方法来自动化我在Silverlight上的应用程序构建.

我需要根据需要使用Selenium,任何人都可以讲一个过程或任何好的教程,通过它我可以实现我的要求.

提前致谢.

silverlight automation selenium-rc

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

将枚举转换为键,值对

如何将Enum转换为Key,Value Pairs.我已经用C#3.0转换了它.

 public enum Translation
    {
        English,
        Russian,
        French,
        German
    }

   string[] trans = Enum.GetNames(typeof(Translation));

   var v = trans.Select((value, key) =>
   new { value, key }).ToDictionary(x => x.key + 1, x => x.value);
Run Code Online (Sandbox Code Playgroud)

C#1.0中,这样做的方法是什么?

c#

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

RIA服务层有多少业务逻辑?

我最近使用.NET 4.0对Silverlight,RIA Services和Entity Framework进行了实验.我正在试图弄清楚这个堆栈是否适用于我即将开展的任何项目.看起来这些技术似乎可以非常高效地开发应用程序,但我很难决定应该如何构建这个堆栈顶部的应用程序.

我遇到的主要问题是,在大多数演示中,我看到大多数业务逻辑最终都是RIA Services域服务类中的DataAnnotations和自定义验证.这对我来说似乎不合适.我认为域服务基本上是一个美化的Web服务,恰好可以很容易地将信息推送到客户端.但是我所看到的大部分内容似乎都将域服务定位为应用程序中业务逻辑的主要来源.

所以,我的问题:

  • 在使用此堆栈的应用程序中,业务逻辑(规则,验证,行为,授权)的最佳位置是什么?
  • 是否在架构级别发布了使用此堆栈的指南?

我的问题涉及大型,复杂和长期存在的应用程序.显然,对于仅少数屏幕的应用,这不是一个问题.

编辑: 我要提到的另一件事是,显然你可以使域服务类变得愚蠢,但是你会丢失很多自动实体信息(例如验证)被推送到客户端.如果你输了,那么使用RIA服务有什么意义吗?

.net architecture silverlight entity-framework wcf-ria-services

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

如何动态发现Silverlight prism应用程序中所有模块中的所有XAML文件

有没有一种简单的方法可以动态发现所有当前加载的模块(特别是Silverlight Prism应用程序)中的所有XAML文件?我确信这是可能的,但不知道从哪里开始.

这必须在Silverlight客户端上发生:我们当然可以在开发机器上解析项目,但这会降低灵活性并在搜索中包含未使用的文件.

基本上我们希望能够解析一个非常大的Prism项目中的所有XAML文件(独立于加载它们)以识别所有本地化字符串.这将让我们构建一个初始本地化数据库,其中包括我们所有的资源绑定字符串,还可以创建查找它们所在的XAML文件(以便为翻译人员编辑).

为什么会这样?:翻译者最糟糕的事情就是在一个上下文中更改一个字符串,发现它在其他地方使用时含义略有不同.我们正在从应用程序本身启用翻译的上下文编辑.

更新(9月14日):

由于安全限制,Silverlight无法使用标准迭代程序集的方法.这意味着以下解决方案的唯一改进是尽可能与Prism模块管理合作.如果有人想为此问题的最后一部分提供代码解决方案,可以与您分享点数!

跟进:

在基于模块的项目中迭代XAP文件的内容似乎是一个非常方便的事情,因为各种原因,所以能够做另外100个代表来获得真正的答案(最好是工作示例代码).干杯,祝你好运!

下面的部分解决方案(工作但不是最佳):

下面是我提出的代码,它是嵌入式资源上这个链接的技术(由Otaku建议)和我自己的Prism模块目录的迭代.

  • 问题1 - 所有模块都已加载,因此基本上必须再次下载它们,因为我无法解决如何迭代所有当前加载的Prism模块.如果有人想在这个上分享赏金,你仍然可以帮助这个成为一个完整的解决方案!

  • 问题2 - ResourceManager中显然存在一个错误,它要求您获取已知资源的流,然后才能迭代所有资源项(请参阅下面的代码中的注释).这意味着我必须在每个模块中都有一个虚拟资源文件.很高兴知道为什么需要初始的GetStream调用(或者如何避免它).

    private void ParseAllXamlInAllModules()
    {
        IModuleCatalog mm = this.UnityContainer.Resolve<IModuleCatalog>();
        foreach (var module in mm.Modules)
        {
            string xap = module.Ref;
            WebClient wc = new WebClient();
            wc.OpenReadCompleted += (s, args) =>
            {
                if (args.Error == null)
                {
                    var resourceInfo = new StreamResourceInfo(args.Result, null);
                    var file = new Uri("AppManifest.xaml", UriKind.Relative);
                    var stream = System.Windows.Application.GetResourceStream(resourceInfo, file);
                    XmlReader reader = XmlReader.Create(stream.Stream);
                    var parts = …
    Run Code Online (Sandbox Code Playgroud)

silverlight xaml prism mvvm

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

重绘silverlight手风琴项目不起作用

我在手风琴中有一个数据网格,我以编程方式添加项目.这些项目没有添加问题,但是手风琴项目不会刷新到可以查看数据网格的所有内容的大小.如果我拖动数据网格边以调整其大小,则手风琴项目会正确调整大小.我似乎无法通过代码自动执行此操作.我已尝试在网格或手风琴项目上使用InvalidateArrage和InvalidateMeasure,我也尝试更改控件的宽度或高度,但似乎没有任何工作通过代码.我甚至尝试过LayoutRoot上的Invalidate方法.有什么我可以做代码明智的手风琴项目刷新到适当的大小?

silverlight xaml accordion

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

gcc链接共享库反对符号链接

我有两个库,例如两个烤箱库libtoaster_a.solibtoaster_b.so以及所有相关的major/minor/rev符号链接,例如libtoaster_a.so.1.0.0等.两个库实现相同的烤箱接口,但只是简单地进行处理不同.因此,当我构建一个使用该库的应用程序时,使用哪个应用程序并不重要(从应用程序的角度看它们是相同的).

因为我想在编译和分发应用程序之后决定使用哪个库,所以我创建一个符号链接libtoaster.so,它指向libtoaster.so.1,然后指向libtoaster_a.so.1libtoaster_b.so. 1.因此,用户/安装程序可以简单地更改libtoaster.so.1链接以选择要使用的实现.

对于构建说我有libtoaster.so.1libtoaster_a.so.1默认.当我编译我的应用程序时,例如:my_app由类似的东西gcc -o my_app -ltoaster...编译,甚至正确运行libtoaster_a.so.1.但是,如果我在my_app上运行ldd,我将看到它根据需要链接到libtoaster_a.so.1而不是libtoaster.so.1,因此更改libtoaster.so.1链接无效.

有没有更好的方法来解决这个问题,而不是制作libtoaster_a.so.1,将其重命名为 libtoaster.so.1,对该库进行my_app,然后删除libtoaster.so.1并再次将其创建为符号链接?

symlink gcc ldd

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

Visual Studio 2010 DTE:如何使添加的DLL引用绝对而不是复制

摘要:

当您添加特定DLL时,我们需要使用DTE复制"添加引用"对话框的行为(它将Hint路径条目添加到CSProj文件中的引用).

**注意:此处有另一篇相关但未重复的帖子:https://stackoverflow.com/questions/6690655/visual-studio-2010-add-in-how-to-get-a-references-提示路径属性请阅读该提示以获取有关此问题的更多信息.我现在已经添加了一个不错的赏金来得到答案,并且很乐意在任何体面的答案上分散投票:)*

到目前为止的故事:

我正在使用DTE以编程方式将项目引用转换为直接DLL引用.

假设我有一个简单的解决方案Project2(在项目),它引用Project1(该项目),我作出这样的变化:

project1Reference = FindProjectReference(project2.References, project1);
project1Reference.Remove();
Reference dllReference = project2.References.Add(project1DllPath);
Run Code Online (Sandbox Code Playgroud)

其中project1DllPath引用该"c:\somewhere\Project1\Bin\Debug\Project1.dll"文件.

我还不能解决的问题是,新的参考是不是"c:\somewhere\Project1\Bin\Debug\Project1.dll",而是指向 "c:\somewhere\Project2\Bin\Debug\Project1.dll"(文件被复制那里).

如果我使用"添加引用"菜单直接/手动添加DLL,则不会执行此复制.

如何在没有复制和引用它的情况下将DLL引用添加到现有项目的DLL中?

我尝试dllReference.CopyLocal = false;在Add之后添加,但除了设置标志之外没有任何区别.创建后似乎没有选项可以修改路径.

更新:我还尝试以编程方式从Project2中删除Project1上的任何Build依赖项,但这没有任何效果.

以下是csproj文件之间的区别:

作为一个项目:

  <ItemGroup>
    <ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj">
      <Project>{86B3E118-2CD1-49E7-A180-C1346EC223B9}</Project>
      <Name>ClassLibrary1</Name>
    </ProjectReference>
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

作为DLL引用(路径完全丢失):

 <ItemGroup>
    <Reference Include="ClassLibrary1, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
      <Private>False</Private>
    </Reference>
    ...
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

作为手动引用的DLL:

  <ItemGroup>
    <Reference Include="ClassLibrary1, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
      <HintPath>..\ClassLibrary1\bin\Debug\ClassLibrary1.dll</HintPath>
    </Reference>
    ...
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

看起来能够指定DLL引用的提示路径是关键.如何在DLL引用上设置提示路径(假设您只有Reference属性的句柄)? …

project-reference visual-studio-2010 envdte

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

如何使用TinyMCE全屏模式使用Bootstrap NavBar

刚开始在MVC剃刀项目中使用TinyMCE,并对HTML编辑印象深刻.

当我去全屏使用时(使用以下选项)

$('#ApplicationHtmlTemplate').tinymce({
    theme: "modern",
    plugins: "code,pagebreak,fullpage,table,fullscreen,paste,spellchecker",
    toolbar1: "undo | redo | copy | paste | searchreplace | spellchecker | table | pagebreak | fullpage | fullscreen"
})
Run Code Online (Sandbox Code Playgroud)

我注意到它出现在bootstrap标题栏下面:

在此输入图像描述

使TinyMCE编辑出现在Bootstrap导航栏的下方或顶部的"正确"方法是什么?最好在页眉和页脚之间,但全屏会这样做.

我尝试mce-fullscreen使用下面的样式设置类的顶部和/或边距,但是这a)看起来很hacky而b)不起作用,因为高度是全屏,所以滚动条从底部消失.

div.mce-fullscreen {
    top: 55px;
}
Run Code Online (Sandbox Code Playgroud)

javascript css jquery twitter-bootstrap tinymce-4

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

Silverlight:从服务器分页数据

我有一个服务器端API,它根据各种查询参数提供JSON格式的分页数据.我想提供一个允许用户分页查询结果的UI.

我知道允许这种接口的各种组件部件,模型/视图模型杠杆上的IPagedCollectionView和ICollectionView以及UI中的DataPager.但是,我看到的所有示例都在已经加载到模型或视图模型中的数据之上实现了分页.

我希望在某处找到一个IPagedCollectionView实现,您可以在其中简单地插入从服务器获取给定页面数据的'fetcher'方法,并提供一些元数据(总页面等...)

我可以根据IPagedCollectionView和ICollectionView接口自己编写,但如果没有这个问题的标准解决方案,我会感到惊讶.

任何指向更合适的框架部分的指针或扩展框架的库都将受到赞赏!

silverlight pagination pagedcollectionview

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

点击事件的JQuery .done

我不是一个javascript开发人员,所以请耐心等待...

我需要在jQuery click事件完成后执行重定向.这是我的,但我不能申请.done.click.将整个事物包装起来$.when并不起作用......

$("#printpng").click(function(){
            $('#tool_docprops').click();
            $('#tool_docprops_save').click();
            $('#tool_export').click()
        }).done(function(){
                window.location.href = "<?php echo $base_url ?>/sign/print"
        });
Run Code Online (Sandbox Code Playgroud)

有没有人有更好的解决方案?

谢谢

javascript jquery

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