小编mbu*_*bue的帖子

扩展HTMLElement:使用webpack时构造函数失败

我将以下TypeScript程序转换为ES5:

档案1:

class BaseElement extends HTMLElement {
    constructor() {
        super();
    }
}
Run Code Online (Sandbox Code Playgroud)

文件2:

import {BaseElement} from './BaseElement';

class MyElement extends BaseElement {
    constructor() {
        super();
    }
}

var el = new MyElement();
Run Code Online (Sandbox Code Playgroud)

将所有内容手动放入文件中,代码工作正常并在浏览器中执行,HTMLElement构造没有问题.但是,只要我通过webpack打包它,我收到以下错误消息:

Uncaught TypeError: Failed to construct 'HTMLElement': Please use the 'new' operator, this DOM object constructor cannot be called as a function.
Run Code Online (Sandbox Code Playgroud)

没有webpack,构造了以下JS代码:

var __extends = (this && this.__extends) || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor …
Run Code Online (Sandbox Code Playgroud)

javascript web-component typescript webpack

19
推荐指数
2
解决办法
8421
查看次数

使用指令使用渲染器添加属性

我想实现扩展带有属性的HTML标记,但是用角度2组件封装它.

让我们假设使用我的Angular 2组件foo的原始标记

<div foo="x"></div>
Run Code Online (Sandbox Code Playgroud)

foo属性应该将div转换为:

<div some-other-fancy-attribute="x"></div>
Run Code Online (Sandbox Code Playgroud)

首先我尝试实现一个指令,但我无法弄清楚如何使用角度/核心的渲染器向托管元素添加另一个属性.

然后我使用像[foo]这样的属性选择器来阅读Angular 2组件.我喜欢使用模板来渲染其他花式属性的想法.

但是,模板得到了标签之后的渲染,所以我最终得到:

<div foo="x">some-other-fancy-attribute="x"
Run Code Online (Sandbox Code Playgroud)

是不是有一种简单的方法来封装一些属性创建?认为这是一个微不足道的,但它让我比预期更令人头痛.

angular

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

Visual Studio 2012:无法引用项目

我们开发了一个包含VS 2010的约35个项目的大型解决方案,现在我们正在考虑迁移到VS 2012 Ultimate.我将解决方案文件转换为VS 2012,一般来说,一切正常.

但每当我打开解决方案时,我都会对解决方案中的某个项目A发出一些警告:"项目X无法引用""项目Y无法引用"......其中A有项目引用X和Y.当我构建解决方案时,我得到的错误是找不到每个相应DLL的元数据.

当我查看解决方案资源管理器中的引用时,它们会标有黄色警告符号.只要我点击参考,警告就会消失,图标看起来很正常.然后我可以毫无错误地构建!

每次打开解决方案时都会出现问题,受影响的项目总是相同的.

有没有人经历过这种奇怪的行为?删除和添加项目引用再次没有帮助...

先感谢您.

编辑:我检查了引用项目的csproj文件,我想知道所有具有上述问题的项目引用GUID都是小写的,其他项目是大写的.

<ProjectReference Include="..\Presentation.Net\Presentation.Net.csproj">
  <Project>{04004c6b-76c8-4f2d-9fcf-5a866bb80fd4}</Project>
  <Name>CMS.Presentation.Net</Name>
</ProjectReference>
Run Code Online (Sandbox Code Playgroud)

在解决方案中,GUID是大写的:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Presentation.Net", "Presentation.Net\Presentation.Net.csproj", "{04004C6B-76C8-4F2D-9FCF-5A866BB80FD4}"
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c# visual-studio-2012

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

Qt项目文件:根据Kit添加库

我有一个QT项目,它运行在x86 linux和ARM linux嵌入式(yocto)上.对于每个平台,我在QtCreator中定义了一个Kit,引用了相应的编译器等.

现在我想将LIBS添加到我的专业文件中,但我在每个平台上都有不同的库.我没有找到一种方法来指定依赖于编译工具包的LIBS指令.

我搜索的内容如下:

if (Kit == "Desktop")
    LIBS += ...

if (Kit == "Embedded Yocto")
    LIBS += ...
Run Code Online (Sandbox Code Playgroud)

怎么做到这一点?先感谢您

qt cross-compiling qt-creator

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

Visual Studio:基于正则表达式的自定义代码突出显示

由于我的应用程序支持一些偏执的调试级别(每个数据赋值,代码中的每一步都写入日志目的地),我的代码在某些方法中充斥着日志调用,例如

logger.Log(LogLevel.Debug, 0, "Initializing i18n...");
Lang.Language = SystemInfo.Language;
Logger.Log(LogLevel.Debug, 0, "Default system language: " + Lang.Language);
string[] languageFiles = Directory.GetFiles(ClientEnvironment.LanguagePath);
Logger.Log(LogLevel.Debug, 0, "Initializing local language files...");
Run Code Online (Sandbox Code Playgroud)

如您所见,只有两个"真实"代码行.这使得代码有点难以阅读.我想知道是否可以在Visual Studio中指定一些自定义代码格式规则,以使日志记录行以软灰色文本颜色显示,而不是默认文本颜色.这将导致隐含突出显示"真实"代码行,从而产生更易读的代码.

我需要这样的东西:

If statement starts with "logger.Log", set foreground color to gray.
Run Code Online (Sandbox Code Playgroud)

你知道任何可以实现这种行为的插件吗?先感谢您.

syntax-highlighting visual-studio

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

CQRS:类冗余并将DTO传递给域

我的CQRS应用程序有一些复杂的域对象.创建它们时,实体的所有属性都由用户直接指定,因此

CreateFooCommand有大约15个属性.

因此,FooCreatedEvent也有15个属性,因为我需要读取端的所有实体属性.

由于必须将命令参数分派给域对象,并且不应将FooCreatedCommand传递给域,

有一个从CreateFooCommand到域的手动映射.

由于域应该创建域事件,

这是从域Foo属性到FooCreatedEvent的另一个映射.

在读取方面,我使用DTO来表示Foo的结构,因为它存储在我的读模型中.

因此,更新读取端的事件处理程序引入了从事件参数到DTO的另一个映射.

为了实现一个简单的商业案例,我们有

  • 两个冗余类
  • 基本相同属性的三个映射

我想要摆脱命令/事件参数并推送DTO对象,但这意味着域可以接收或创建DTO并将其分配给事件.

序列:

REST Controller --Command+DTO--> Command Handler --DTO--> Domain --(Event+DTO)--> Event Handler
Run Code Online (Sandbox Code Playgroud)

关于使CQRS减少实施痛苦的任何想法?

c# domain-driven-design cqrs

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

NHibernate延迟加载和对象比较

配置延迟加载后,我遇到了有关对象比较的问题.我在每个域实体类中的重写Equals方法包含以下行:

if (obj == null || !obj.GetType().Equals(GetType()))
Run Code Online (Sandbox Code Playgroud)

显然,类型比较将失败,因为obj是一个代理实例.我已经看过一些NHibernate-snippets,它们解开一个对象并返回真实实例.但是当我强制执行域驱动设计时,我不希望在我的域层中使用任何特定于ORM的代码.我还不能unproxy呼叫者侧[例如foo.Equals(Unproxy(巴))]作为呼叫者是这也不包含任何特定的ORM代码(所有NHibernate的依赖关系是由温莎注入)我的应用层的实例.

长话短说:是否有任何通用代码来获取真实实例?

c# nhibernate lazy-loading

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

C#是具有泛型类型约束的泛型类型

让我们假设一个界面

interface IOwnedBy<T> where T : IOwner 
{ 
    T Owner { get; }
}
Run Code Online (Sandbox Code Playgroud)

interface IOwner 
{ 
    public int Id { get; } 
}
Run Code Online (Sandbox Code Playgroud)

在我的代码的某处,我想做以下事情:

if (obj is OwnedBy<IOwner>) 
{
    DoSomethingWith( obj.Owner.Id );
}
Run Code Online (Sandbox Code Playgroud)

基本上,我想检查obj是否是任何OwnedBy实现.由于IOwner是任何泛型参数的类型约束,我认为这个可行.但这种情况从未得到满足.

没有使用很多反射的任何方式?

c# generics reflection

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

Visual Studio 2012中的智能设备支持

我已经在这里看到了这个问题,但是现在Windows Embedded Compact 2013已经发布,应该有一些关于Visual Studio 2012中的智能设备支持的信息.

目前,我们正在使用VS 2008和WEC 7开发工业自动化解决方案(===>我不是在询问Windows Phone开发).我们有兴趣升级到VS 2012,但我找不到任何有关的信息

a)智能设备开发何时发货

b)WEC 7开发是否仍将在VS 2012中得到支持,因为WEC 2013板卡供应商是一种稀有物种ATM

有人知道一些发布路线图的细节吗?

先感谢您.

windows-ce visual-studio windows-embedded-compact

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