小编afe*_*gin的帖子

是否有工具通过包装成员字段或属性来实现接口?

我发现自己经常做以下事情,我觉得必须有一个自动解决方案:

我有一个包装类,比如ListWrapper,它包装了一个IList:

public class ListWrapper : IList 
{
    private IList _list;

    // ... Implement IList by redirecting every call to _list
}
Run Code Online (Sandbox Code Playgroud)

有没有可以自动生成此实现的工具?

c# resharper visual-studio

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

有没有办法在typescript中委托索引属性?

有没有办法将index属性委托给typescript中的成员?我正在编写一个包装器,我想将index属性委托给我正在包装的对象.

就像是:

interface MyStringArray {
    length : number;
    clear() : void;
    [index: number] : string;
}

export class MyStringArrayWrapper implements MyStringArray {

    private wrapped : MyStringArray;

    public get length() : number { 
        return this.wrapped.length;
    }

    public clear() : void {
        this.wrapped.clear();
    }

    // This doesn't work
    public get [index : number] : string { 
        return this.wrapped[index];
    }

    // This doesn't work either
    public set [index : number](value: string) { 
        this.wrapped[index] = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

typescript

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

使用mat-menu作为上下文菜单:正确定位

我正在尝试使用mat-menu构建一个上下文菜单,我觉得我非常接近.我希望菜单弹出用户右键单击的位置.问题是它会弹出用户最后右键单击的位置,而不是它们当前右键单击的位置.我该如何解决?

HTML:

<span #contextMenuTrigger [matMenuTriggerFor]="contextMenu" class="context-menu-trigger" [style.left.px]="menuLeft" [style.top.px]="menuTop"></span>
<div (contextmenu)="openContextMenu($event)> stuff that I want right-click available to goes here</div>
<mat-menu #contextMenu="matMenu"> 
    <button mat-menu-item>Item 1</button>
    <button mat-menu-item>Item 2</button>
</mat-menu>
Run Code Online (Sandbox Code Playgroud)

CSS:

.context-menu-trigger { position: absolute }
Run Code Online (Sandbox Code Playgroud)

TS:

...
@Component( ... )
export class AppComponent {
    @ViewChild(MatMenuTrigger) public menuTrigger : MatMenuTrigger;
    public menuLeft = 0;
    public menuTop = 0;
    ...
    openContextMenu(event) {
        event.preventDefault();
        this.menuLeft = event.x;
        this.menuTop = event.y;
        this.menuTrigger.openMenu();
    }
}
Run Code Online (Sandbox Code Playgroud)

我们目前在@angular 4.4和@ angular/material 2.0.0-beta.12.

angular-material2 angular

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

为什么此运行时动态绑定失败?

为什么以下测试失败?

[TestClass]
public class DynamicTests
{
    public class ListOfIntsTotaller
    {
        public float Total(List<int> list) { return list.Sum(); }
    }
    public static class TotalFormatter
    {
        public static string GetTotal(IEnumerable list, dynamic listTotaller)
        {
            //  Get a string representation of a sum
            return listTotaller.Total(list).ToString();
        }
    }
    [TestMethod]
    public void TestDynamic()
    {
        var list = new List<int> { 1, 3 };
        var totaller = new ListOfIntsTotaller();
        Assert.AreEqual("4", totaller.Total(list).ToString()); // passes 
        Assert.AreEqual("4", TotalFormatter.GetTotal(list, totaller)); // fails
    }
}
Run Code Online (Sandbox Code Playgroud)

出现以下错误:

Test method MyTests.DynamicTests.TestDynamic threw exception: …

c# dynamic

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

在sql azure中替换"select*into"?

我需要一种方法来一般地获取一个表并将其数据复制到一个新表 - 基本上与SELECT*INTO在常规SQL Server中所做的相同.有没有办法在SQL Azure中执行此操作?此时我只有现有的和新的表名.

azure azure-sql-database

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

Is there a way to allow unresolved assembly reference in ILMerge?

我正在构建一个库并拥有一个第三方程序集,无论出于何种原因,我都希望将其打包为嵌入式资源,而不公开为其他DLL。

我的客户端ILM将我的库合并到其可执行文件中。但是,如果我为他们提供带有嵌入式资源的库,则它们会出现“不允许未解析的程序集引用”异常。

由于我不想将我与第三方程序集的所有交互都包装在反射代码中,因此我想将引用保留在库中。

有没有办法告诉ILMerge忽略特定的未解决程序集引用?

.net c# ilmerge assemblies

5
推荐指数
0
解决办法
1196
查看次数

从 http 服务流式传输大文件

我正在编写一个组件来从 HTTP 服务流式传输一个大的(4+ GB)。该组件采用 URL 和目标流。目标流可以是文件流,也可以是 POST 到不同 HTTP 服务的流,甚至两者都可以。作为组件的作者,我需要执行以下步骤,直到完成:

  1. 从 HTTP 流中读取一个合理大小的缓冲区,
  2. 将此缓冲区写入目标流,
  3. 刷新目标流(输出到磁盘、网络等)

我永远不应该有超过内存中数据缓冲区的大小。

我正在使用 flurl 对服务器进行 HTTP 调用。我已经尝试了以下方法来拨打我的电话

var stream = await flurlClient.GetStreamAsync();
Run Code Online (Sandbox Code Playgroud)

这给了我一个 MemoryStream,它不起作用,因为它会填满并占用与文件大小一样多的内存。

var response = flurlClient.GetAsync();
var stream = response.Content.ReadAsStreamAsync();
Run Code Online (Sandbox Code Playgroud)

再次,内存流。

var response = flurlClient.GetAsync();
var stream = new CustomFlushingSteam();
response.Content.CopyToAsync(stream);
Run Code Online (Sandbox Code Playgroud)

这个看起来很有希望,但遗憾的是,它试图使用单个 Write() 语句编写整个内容。

我怎样才能在不破坏记忆的情况下完成这项任务?我更喜欢使用 flurl,但我并没有被它束缚。

.net c# http stream flurl

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