小编Gro*_*kys的帖子

ActionScript中的绑定如何工作?

据我所知,ActionScript中的var绑定是通过在var更改时自动触发的事件来执行的.我有几个问题:

  1. 如果类没有显式扩展EventDispatcher会发生什么?在编译器中是否存在某种神奇的东西,它基本上使该类成为EventDispatcher?
  2. 如何绑定到静态变量?是否在类中添加了某种隐式静态addEventListener()函数?
  3. 我注意到你可以把[Bindable]放在静态变量而不是静态函数上,为什么会这样?

编辑:

感谢Christophe Herreman的出色回答.但是,我从上面的问题中得到了一些后续内容.我想知道是否有人可以为我填补空白(我试着将这些问题编号为4,5,6,但出于某种原因它们出现了1,2,3!)

  1. 我已将-keep选项添加到编译器并查看生成的绑定代码.谁能解释一下如何应用这段代码?编译器似乎为每个类生成一个名为BindableProperty的类,其中包含getter和setter.这怎么折叠到我写的课上?该功能看起来有点像C#中的部分类 - 这是专门的幕后编译器功能,还是我可以自己使用的东西?

  2. BindableProperty类仍然没有显式实现EventDispatcher,生成的类如何实现事件调度?

  3. 在问题3中,我询问了绑定到静态函数,但实际上我的意思是静态getter和setter函数.这似乎不被允许.

apache-flex air data-binding actionscript-3

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

DropDownListFor - 显示一个简单的字符串列表

我知道已经有很多类似的问题,但我花了好几个小时试图解决这个问题,其他答案似乎都没有帮助!

我想使用MVC在下拉列表中显示字符串列表.这真的很难吗?我没有"文本"和"值"分离(尽管MVC似乎需要一个) - 显示给用户的字符串是我的值.

到目前为止我有以下内容:

控制器:

public ActionResult Index()
{
    return View(new HomeViewModel());
}
Run Code Online (Sandbox Code Playgroud)

视图模型:

public class HomeViewModel
{
    public HomeViewModel()
    {
        Items = new SelectList(new[]
        {
            new SelectListItem { Text = "One", Value = "One" },
            new SelectListItem { Text = "Two", Value = "Two" },
        });
    }

    public SelectList Items { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

视图:

<% using (Html.BeginForm()) { %>
    <% Html.DropDownListFor(x => x.Items, Model.Items); %>
    <input type="submit" value="Go!" />
<% } %>
Run Code Online (Sandbox Code Playgroud)

没有 …

c# asp.net-mvc drop-down-menu

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

在C#中创建COM自动化服务器

我目前有一个用C#编写的.NET类库,它通过COM将其功能暴露给C++程序(pre -.NET).

我们现在想要将库移出进程以释放主应用程序中的地址空间(它是一个图像处理应用程序,大图像占用了地址空间).我记得在我的VB6时代,人们可以创建一个"OLE自动化服务器".操作系统会在创建/销毁对象时自动启动和停止服务器.exe.这看起来非常适合我们:据我所知,除了用CLSCTX_LOCAL_SERVER而不是CLSCTX_INPROC_SERVER调用CoCreateInstance之外,客户端不会发生任何变化.

我如何在C#中创建这样的进程外服务器?要么网上没有关于它的信息,要么我的术语已经过时/过时了!

.net c# com automation

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

在Visual Studio中指定非.NET依赖项

我使用P/Invoke从我的项目调用非.NET dll,这意味着.dll必须始终存在于.exe的目录中.

有没有办法告诉Visual Studio这个依赖项,以便它在编译时自动将.dll复制到输出目录,并在设置中自动包含.dll?或者我必须手动执行此操作吗?

.net dll dependencies visual-studio

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

使用LINQ的多个或单个存储库

我一直在阅读Professional ASP.NET MVC 1.0书中的第11章(可测试设计模式).在本章的示例中,数据访问被分成许多存储库:IOrderRepository,IProductRepository等.这些都是有意义的:单个数据库的单个存储库.

但是,当您考虑表之间的链接时,这会对我造成一些影响:订单包含许多产品.当Order类由LINQ-to-SQL创建时,订单类将具有Products集合,该集合枚举与该订单相关的所有产品.因此,通过使用此集合,我们绕过了ProductsRepository.

因此,在模拟时,我不仅要模拟OrderRepository和ProductRepository,我还必须在返回的Order对象中填充Products集合.这意味着模拟的OrderRepository必须知道模拟的ProductsRepository等等.

忽略LINQ如此友好地为我创建的这些集合似乎是浪费,所以我的问题是,在这种情况下,单个存储库不会更有意义吗?

linq tdd asp.net-mvc

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

WPF KeyGestures - 绑定非字母数字键

应该是一个简单的,但我无法弄清楚如何做到这一点.使用WPF4我想绑定Ctrl+ -缩小和Ctrl+ =放大:

    <KeyBinding Command="{Binding Content.ZoomInCommand}" Gesture="Ctrl+="/>
    <KeyBinding Command="{Binding Content.ZoomOutCommand}" Gesture="Ctrl+-"/>
Run Code Online (Sandbox Code Playgroud)

但是,我收到了错误:在Ctrl+ 的情况下=:

未找到请求值'='.

有任何想法吗?

wpf keyboard-shortcuts

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

C#5中新的异步/等待功能如何与消息循环集成?

我没有机会查看新的C#async/await功能的CTP,但是我想知道的是:

它如何与消息循环集成?我假设在标准的Windows应用程序(Winforms,WPF)中,通过使用Dispatcher或类似程序将消息发送到应用程序的消息循环来调用延续?

如果我没有使用标准的Windows消息循环怎么办?例如,在GTK#应用程序或控制台应用程序中(如果在控制台应用程序中确实可以使用此功能).

我在互联网上搜索了有关这方面的信息,但无济于事.谁能解释一下?

c# asynchronous async-await async-ctp

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

在语义模型中查找标识符

假设我有一个如下所示的源文件:

public class FieldReference
{
    int field;

    public FieldReference()
    {
        field = 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用SyntaxRewriter访问此文件中的所有标识符.在VisitIdentifierName方法中,我想在语义模型中查找标识符,以便发现标识符是否指向当前类的成员.

这是我到目前为止:

public override SyntaxNode VisitIdentifierName(IdentifierNameSyntax node)
{
    SemanticModel model = this.compilation.GetSemanticModel(this.src);
    // ?? look up identifier in compilation here ??
    return base.VisitIdentifierName(node);
}
Run Code Online (Sandbox Code Playgroud)

但是我无法找到在语义模型中查找标识符 - SemanticModel.GetDeclaredSymbol方法没有重载接受IdentifierNameSyntax.

知道我应该怎么做吗?

c# roslyn

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

ASP.net vNext和实体框架6

是否可以在预发布的ASP.net vNext下运行EF6?EF7没有我需要的一些功能,但我想在.NET Core中对我的应用程序进行原型设计.

我收到以下错误:

FileLoadException: A strongly-named assembly is required. 
(Exception from HRESULT: 0x80131044) Unknown location

FileLoadException: Could not load file or assembly
'EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089' or one of its dependencies. 
A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)
Run Code Online (Sandbox Code Playgroud)

我知道.NET Core不支持强名称程序集,但据我所知,我在aspnet50框架下运行服务器而不是aspnetcore50.

我的project.json看起来像这样:

{
    "webroot": "wwwroot",
    "version": "1.0.0-*",
    "dependencies": {
        "EntityFramework": "6.1.1",
        "Microsoft.AspNet.Mvc": "6.0.0-beta3",
        /* "Microsoft.AspNet.Mvc.WebApiCompatShim": "6.0.0-beta3", */
        "Microsoft.AspNet.Diagnostics": "1.0.0-beta3",
        "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta3",
        "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta3",
        "Microsoft.AspNet.Security.Cookies": "1.0.0-beta3",
        "Microsoft.AspNet.Server.IIS": "1.0.0-beta3",
        "Microsoft.AspNet.Server.WebListener": "1.0.0-beta3",
        "Microsoft.AspNet.StaticFiles": "1.0.0-beta3",
        "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta3",
        "Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta3",
        "Microsoft.Framework.Logging": "1.0.0-beta3",
        "Microsoft.Framework.Logging.Console": …
Run Code Online (Sandbox Code Playgroud)

asp.net entity-framework asp.net-core

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

从actionscript库中检测AIR与Flash Player

我有一个需要稍微不同的swc,具体取决于它是否由AIR托管.我在互联网上看到了两条建议:

  • 测试WindowedApplication的Application.application.
  • 为Security.APPLICATION测试Security.sandboxType.

但是,这些似乎不适用于我的.swc,因为编译器找不到WindowedApplication或Security.APPLICATION.我的库不需要任何其他AIR功能,所以我认为它没有链接到AIR库,我认为不应该继续在flash播放器中工作.

有什么建议?

apache-flex air flash actionscript-3

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