小编Ada*_*her的帖子

如何处理添加到列表事件?

我有一个这样的列表:

List<Controls> list = new List<Controls>
Run Code Online (Sandbox Code Playgroud)

如何处理在此列表中添加新位置?

当我做:

myObject.myList.Add(new Control());
Run Code Online (Sandbox Code Playgroud)

我想在我的对象中做这样的事情:

myList.AddingEvent += HandleAddingEvent
Run Code Online (Sandbox Code Playgroud)

然后在我的HandleAddingEvent委托处理中添加位置到此列表.我该如何处理添加新的位置事件?我怎样才能举办这个活动?

c# events list event-handling

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

TypeError:undefined不是构造函数

我对Angular很新,而且我还在努力解决这个问题.我正在使用我从Yeoman Generator生成的Angular 1.5.8编写一些测试.

具体来说,我正在试图弄清楚如何操纵$ httpBackend结果(我不确定这是否重要)...

在我的app.js文件中,我有以下代码:

.run(['$rootScope', '$location', 'breadcrumbService', function ($rootScope, $location, breadcrumbService) {
    $rootScope.$on('$viewContentLoaded', function () {
        jQuery('html, body').animate({scrollTop: 0}, 200);
    });

    $rootScope.isEditMode = false;
    $rootScope.$on('$stateChangeSuccess', function () {
        // ------------ this next line is failing -----------
        $rootScope.isEditMode = $location.path().toLowerCase().endsWith('/edit') || $location.path().toLowerCase().endsWith('/new');
    });

    $rootScope.parseJson = function (value) {
        return angular.fromJson(value);
    };

    $rootScope.bc = breadcrumbService;

    $rootScope.title = "";
}])
Run Code Online (Sandbox Code Playgroud)

大约一半的线(我添加评论的地方)失败了.具体来说,endsWith函数失败(toLower很好),出现此错误:

PhantomJS 2.1.1 (Windows 8 0.0.0) Service: breadcrumbService should return breadcrumb label in json format FAILED
        TypeError: undefined is …
Run Code Online (Sandbox Code Playgroud)

javascript phantomjs angularjs karma-jasmine

31
推荐指数
4
解决办法
4万
查看次数

在ASP.NET中使用回发​​的jQuery模式对话框

我刚刚将我的jQuery/jQuery UI升级到最新版本(jQuery 1.9.0,jQuery UI 1.10.0),它似乎打破了我的一些jQuery UI对话框功能.

为了在ASP.NET中的jQuery UI对话框中进行回发,有一个非常常见的解决方法,你必须将你的DIV重新附加到主FORM,因为jQuery会重新构建FORM之外的DIV,就像这样:

$("#newInsurance").dialog({
    autoOpen: false,
    modal: true,
    open: function (type, data) {
        $(this).parent().appendTo($("form:first"));
    }
});
Run Code Online (Sandbox Code Playgroud)

不幸的是,由于升级现在将Dialog置于灰色/禁用覆盖背后.因此Popup中的表单无法使用并且全部变灰.我已经尝试了几件事情,我似乎无法让它发挥作用 - 似乎这种旧的解决方法不再适用.有谁知道一个新的解决方案将有效吗?或者我错过了什么?这很有效,直到我升级.

以下是有关USED工作的更多信息:

我使用Internet Explorer 9和Google Chrome 24.x对此进行了测试

根据jQuery UI网站,在jQuery UI 1.10.0中完全重新设计了Dialog API:

asp.net jquery jquery-ui jquery-ui-dialog

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

传递流的最佳方法是什么?

我试图将流作为参数传递,但我不确定哪种方式是"最好的",所以我希望听到您对我的代码示例的意见/建议

我个人更喜欢选项三,但我更新看到它在其他地方以这种方式完成.

选项1适用于小流(以及已知大小的流)

选项2_1和2_2总是让"管理员"怀疑谁有责任处置/关闭.

public interface ISomeStreamHandler
{
    // Option 1
    void HandleStream(byte[] streamBytes);

    // Option 2
    void HandleStream(Stream stream);

    // Option 3
    void HandleStream(Func<Stream> openStream);
}

public interface IStreamProducer
{
    Stream GetStream();
}

public class SomeTestClass
{
    private readonly ISomeStreamHandler _streamHandler;
    private readonly IStreamProducer _streamProducer;

    public SomeTestClass(ISomeStreamHandler streamHandler, IStreamProducer streamProducer)
    {
        _streamHandler = streamHandler;
        _streamProducer = streamProducer;
    }

    public void DoOption1()
    {
        var buffer = new byte[16 * 1024];
        using (var input = _streamProducer.GetStream())
        {
            using (var ms = …
Run Code Online (Sandbox Code Playgroud)

c# arguments stream

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

使用uiAccess = True安装桌面WPF应用程序时的注意事项

背景:

我需要在另一台显示器上创建调光效果.我想我通过使用WPF窗口解决了这个问题,该窗口占用了整个屏幕尺寸TopmostAllowsTransparency=.它具有内部黑色发光效果,并且具有WS_EX_TRANSPARENT | WS_EX_TOOLWINDOW应用于其中的样式(以及其他内容),以允许用户点击其后面的应用程序.

我监视EVENT_OBJECT_REORDERWindows 中的事件并调用SetWindowPos强制Topmost状态高于其他Topmost窗口.到目前为止,我的概念测试证明似乎运作良好.

我发现的问题是这个调光(窗口)会覆盖任务栏,但是如果我单击开始菜单则不会.我目前正在使用Windows 10进行测试.如果单击"开始"菜单,则会导致"开始"菜单和任务栏显示在调光(窗口)上方.我希望一切都保持黯淡.

我通过uiAccess在应用程序清单中设置= true 来解决此问题,生成自签名证书,并将exe复制到"c:\ program files*".这允许我强制窗口的最顶级状态,甚至在开始菜单上方.

我的问题:

  • 有没有办法在没有开始菜单的情况下定位窗口uiAccess?或者甚至是另一种在不使用窗口的情况下强制屏幕昏暗(但不依赖于显示器驱动程序或硬件功能)的方法?

  • 如果没有,在分发WPF应用程序(通过WiX安装项目或类似的东西)时,我需要注意什么,以绕过UIPI限制uiAccess= True?我可以在安装过程中简单地安装自签名证书吗?用户是否会遇到任何其他障碍?作为一名开发人员,在构建此问题时,我是否会遇到任何其他障碍(除了我已经提到过的内容)?

谢谢!

.net c# wpf uipi ui-automation

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

仅在元素旁边存在某个元素时才将样式应用于元素

<section>在几个页面上使用标签,但在一个页面上我使用的是<aside>标签前面的<section>标签.

在我<section>紧跟一个a的情况下<aside>,我想对两者都应用一个宽度,并使该部分向左浮动,并且向右浮动.

基本上,如果我有一个<section>,<aside>我希望风格像这样工作:

section {
    width: 500px;
    float: left;
    padding: 8px;
}

aside {
    padding:8px; 
    width:400px;
    float:right;
}
Run Code Online (Sandbox Code Playgroud)

如果我只有<section>我希望它像:

section {
    padding: 8px;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以用CSS3中的条件语句或伪类来完成这个,而不必使用JavaScript,自定义类或单独的CSS文件?

css html5 css3

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

使用Moq进行单元测试EF存储库模式

我决定开始在我们的应用程序中编写单元测试.它使用Entity Framework和存储库模式.

现在我想开始测试使用存储库的逻辑类.我在这里提供一个简单的例子.

GenericRepository类中的三个方法:

public class GenericRepository : IRepository
{
    public IQueryable<TEntity> GetQuery<TEntity>() where TEntity : class
    {
        var entityName = GetEntityName<TEntity>();
        return Context.CreateQuery<TEntity>(entityName);
    }
    private string GetEntityName<TEntity>() where TEntity : class
    {
        return typeof(TEntity).Name;
    }
    public IEnumerable<TEntity> Find<TEntity>(Expression<Func<TEntity, bool>> predicate) where TEntity : class
    {
        return GetQuery<TEntity>().Where(predicate).AsEnumerable();
    }
}
Run Code Online (Sandbox Code Playgroud)

一个简单的逻辑类以递减的顺序从日历表中返回不同的年份(是的,我知道单词日历在我们的代码中拼写错误):

public class GetDistinctYearsFromCalendar
{
    private readonly IRepository _repository;

    public GetDistinctYearsFromCalendar()
    {
        _repository = new GenericRepository();
    }

    internal GetDistinctYearsFromCalendar(IRepository repository)
    {
        _repository = repository;
    }

    public int[] Get()
    {
        return …
Run Code Online (Sandbox Code Playgroud)

unit-testing entity-framework moq repository-pattern

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

从任务管理器启动进程并隐藏命令行参数

我不确定这个问题是否更适合Stackoverflow或SuperUser或StackExchange网站...

基本上我是从C#启动第三方应用程序,Process.Start带有几个命令行参数.其中一个命令行参数是密码.

我认为我在应用程序中的任何地方保护密码都做得非常好,除非您在任务管理器中打开"进程"选项卡,您可以添加"命令行"列并查看所有这些命令行参数.

任何人都可以想到一种方法来启动一个以某种方式隐藏命令行参数的进程吗?这有可能吗?

谢谢!

编辑:

这是plink.exe(SSH/Putty东西)的Windows服务包装器.如果我没有在命令行中指定密码,它会提示输入密码,但是我得到了这个奇怪的警告:

Plink.exe - 3/30/2013 2:40:47 PM - Attempting keyboard-interactive authentication
Plink.exe - 3/30/2013 2:40:47 PM - Server refused keyboard-interactive authentication
Plink.exe - 3/30/2013 2:40:49 PM - user@hostname.com's password: 
Run Code Online (Sandbox Code Playgroud)

我已指定重定向标准输入,但也许我会继续查看,看看我是否可以解决它.此外,正如David Heffernan所建议的那样,我将进一步研究Pageant.谢谢大家 - 一旦找到更好的解决方案,我会发布更新!

.net c# windows command-line command-line-arguments

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

VS Extension:TextPoint.GreaterThan/LessThan对于大文件来说非常慢

我正在开发一个VS扩展,需要知道文本光标当前位于哪个类成员(方法,属性等).它还需要父母的意识(例如,类,嵌套类等).它需要知道成员或类的类型,名称和行号.当我说"类型"时我的意思是"方法"或"属性"不一定是".NET类型".

目前我在这里使用此代码:

public static class CodeElementHelper
{
    public static CodeElement[] GetCodeElementAtCursor(DTE2 dte)
    {
        try
        {
            var cursorTextPoint = GetCursorTextPoint(dte);

            if (cursorTextPoint != null)
            {
                var activeDocument = dte.ActiveDocument;
                var projectItem = activeDocument.ProjectItem;
                var codeElements = projectItem.FileCodeModel.CodeElements;
                return GetCodeElementAtTextPoint(codeElements, cursorTextPoint).ToArray();
            }
        }
        catch (Exception ex)
        {
            Debug.WriteLine("[DBG][EXC] - " + ex.Message + " " + ex.StackTrace);
        }

        return null;
    }

    private static TextPoint GetCursorTextPoint(DTE2 dte)
    {
        var cursorTextPoint = default(TextPoint);

        try
        {
            var objTextDocument = (TextDocument)dte.ActiveDocument.Object();
            cursorTextPoint = objTextDocument.Selection.ActivePoint;
        }
        catch …
Run Code Online (Sandbox Code Playgroud)

c# visual-studio envdte vsix visual-studio-extensions

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

列出系统上的所有智能卡读卡器(Alcor Micro 读卡器问题)

我已经让这个软件在生产中运行多年,以前从未见过这个问题。我刚收到一台内置Alcor Micro USB 智能卡读卡器的新笔记本电脑 (HP EliteBook 8470p) 。

下面的代码将列出系统上的所有读者,似乎工作正常。我们的某些系统会将 3 或 4 个阅读器插入到一台计算机中。它已经用十几个模型进行了测试,没有任何问题。

奇怪的是,Alcor 读卡器只有在插入智能卡时才会被列出。如果我在设备管理器中查看它,它也不会显示在“智能卡读卡器”下,直到插入卡(除非我转到“查看”>“显示隐藏的设备”)。

有谁知道这是为什么,或者是否有办法确保它列在我的软件中?

谢谢你。

编码:

[DllImport("WINSCARD.DLL", EntryPoint = "SCardEstablishContext", CharSet = CharSet.Unicode, SetLastError = true)]
static internal extern uint EstablishContext(ScopeOption scope, IntPtr reserved1,
    IntPtr reserved2, ref SmartcardContextSafeHandle context);

[DllImport("WINSCARD.DLL", EntryPoint = "SCardListReaders", CharSet = CharSet.Unicode, SetLastError = true)]
static internal extern uint ListReaders(SmartcardContextSafeHandle context, string groups,
    string readers, ref int size);

private bool EstablishContext()
{
    if ((this.HasContext))
    {
        return true;
    }
    this._lastErrorCode =
        (SmartcardErrorCode)UnsafeNativeMethods.EstablishContext(ScopeOption.System,
        IntPtr.Zero, …
Run Code Online (Sandbox Code Playgroud)

c# hardware smartcard smartcard-reader

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