小编Dan*_*fer的帖子

csproj文件中可重用的PropertyGroup元素

我需要在~15个项目中设置一系列属性.有没有办法将这些属性放在一个文件中,并让所有项目文件使用某种导入指令引用一个文件,而不是复制每个项目文件中的属性?

编辑:澄清一下,我在谈论<PropertyGroup>csproj文件中的元素.所有项目都需要相同的一系列<PropertyGroup>设置.这些元素设置类似DebugSymbols或的属性DefineDebug,不用于引用源文件.

c# csproj visual-studio-2010

13
推荐指数
2
解决办法
4735
查看次数

如何传播我的开源项目的意识?

我在Codeplex上有一些开源项目(如果有人要求我会链接,但除此之外,我不是那么无耻;)),但我不确定如何传播这个词或者让人们注意到.有关吸引用户/贡献者的任何建议吗?


也可以看看:

如何让用户访问您的开源项目

您如何宣传/宣传/传播您的开源项目?

如何说服人们为开源项目做贡献?

open-source

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

ASP.NET MVC:视图引擎无法找到使用由MEF加载的模型类型的视图

我正在尝试创建一个框架,允许将控制器和视图动态导入MVC应用程序.到目前为止它是如何工作的:

  • 我正在使用.NET 4,ASP.NET MVC 3 RC和Razor ViewEngine
  • 每个项目使用MEF导出和导入控制器 - 我从一个给定项目调用一组控制器和视图"模块"
  • 使用MEF发现的程序集由BuildManager使用预应用程序启动方法动态引用BuildManager.AddReferencedAssembly.
  • 使用构建事件将二进制文件(来自导出项目)和视图复制到目标项目的文件夹结构中
  • 使用自定义控制器工厂选择控制器,该工厂继承自DefaultControllerFactory并覆盖GetControllerType()
  • 使用自定义视图引擎选择视图,该引擎继承自RazorViewEngine并覆盖GetView()和GetPartialView()以允许它在特定于模块的视图目录中查找视图

到目前为止,除了使用强类型模型的视图,一切都有效.使用动态模型的视图工作正常,但是当我使用指定模型类型时@model,我得到一个YSOD,其中显示"未找到视图'索引'或其主要".

调试我的ViewEngine实现时,我可以看到: this.VirtualPathProvider.FileExists(String.Format(this.ViewLocationFormats[2], viewName, controllerContext.RouteData.GetRequiredString("controller")))while返回true

this.FileExists(controllerContext, String.Format(this.ViewLocationFormats[2], viewName, controllerContext.RouteData.GetRequiredString("controller"))) 返回false.

在Reflector中,RazorViewEngine的实现FileExists()最终结束了这样做:

return (BuildManager.GetObjectFactory(virtualPath, false) != null);
Run Code Online (Sandbox Code Playgroud)

但是,我无法BuildManager.GetObjectFactory()从Reflector 查看,因为它隐藏在某种程度上.

我怀疑它与模型类型是从MEF加载的类型这一事实有关,但由于我已经引用了MEF从BuildManager发现的程序集,所以我没有引导.任何人都可以更深入地了解可能发生的事情吗?


更新: 事实证明我在.NET 4之前使用过时版本的Reflector.我现在可以看到GetObjectFactory(),但我似乎找不到任何有用的东西.我已经尝试将其添加到我的FindView()重载中:

try {var path = String.Format(this.ViewLocationFormats [2],viewName,controllerContext.RouteData.GetRequiredString("controller")); var objFactory = System.Web.Compilation.BuildManager.GetObjectFactory(virtualPath:path,throwIfNotFound:true); } catch {}

不幸的是,objFactory最终为null,并且不会抛出任何异常.处理编译错误的所有位都是私有方法或类型的一部分,因此我无法调试其中任何一个,但它甚至看起来他们最终会抛出异常,这似乎并没有发生.看起来我又陷入了死胡同.救命!


更新2

我发现在调用FindView()时,如果我调用AppDomain.CurrentDomain.GetAssemblies(),包含模型类型所在的程序集.但是,我无法使用加载类型Type.GetType().


更新3

这就是我所看到的: 未找到



更新4

这是ViewEngine实现:

using System;
using …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc mef razor

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

.NET GUID大写字符串格式

我需要以虚线格式格式化我的GUID,全部大写.我知道使用myGuid.ToString("D")String.Format("{0:D}", myGuid)给出虚线格式,但使用大写D而不是小写d不会给我一个大写的GUID就像我想的那样.有没有办法做到这一点,没有做任何疯狂的事情,或者我只是需要打电话myGuid.ToString().ToUpper()

formatting guid string-formatting

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

MSTest中TestExecution类的目的是什么?

我找到了TestExecution类,它暴露了一堆非常有用的事件.但是,除了MSDN的文档之外,我找不到对它的引用,并且文档没有提供任何关于如何使用它的提示,或者我如何在测试运行期间获得对实例的引用.

使用.NET Reflector查看也没有用 - TestExecution由另一个类实现UnitTestExecution,这是内部的.我无法在任何Microsoft.VisualStudio.QualityTools.*库中找到任何其他类的引用,既不是进一步实现的形式,也不是任何其他类中的属性类型引用.

我如何获得这些活动的访问权限?

.net unit-testing mstest

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

Unity/WebGL和asm.js在MS Edge中发生了相关的崩溃

我有一个非常基本的Unity应用程序,它本质上是专有框架的测试工具.它在Chrome,Firefox和Safari中运行良好.Edge是一个不同的故事.

在Edge 12中,禁用asm.js,加载需要长时间 - 大约90秒,而其他浏览器则需要15-20秒.

在启用了asm.js的Edge 12或13中,它会快速加载,但会在Unity应用程序启动时立即崩溃选项卡.我已经能够找出"preRun"回调被调用,但"postRun"回调没有.

我无法弄清楚如何开始调试 - 如果Dev Tools调试器打开,Edge会禁用asm.js,并且分离调试器也会禁用JS控制台.我无法附加Unity调试器,因为崩溃似乎发生在我到达那一点之前.

是否有来自Edge的某种日志,我可以找到有关崩溃的任何内容,甚至可能是JS堆栈跟踪?

unity-game-engine asm.js microsoft-edge unity-webgl

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

如何在调试时使用除ToString之外的委托来显示对象的值?

.NET/Visual Studio使用对象的ToString()方法在调试器中查看对象时显示对象的值.我想显示特定的信息,但由于.ToString()在将对象转换为字符串时经常被框架使用,我无法通过重写ToString()来实现.是否有一个属性可以用来告诉调试器使用不同的方法或属性?

.net c# debugging tostring

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

使用反应式表单和 ChangeDetectionStrategy.OnPush 显示验证消息

我正在尝试将应用程序迁移到使用ChangeDetectionStrategy.OnPush. 然而,我在尝试使用一些反应形式时遇到了一些阻碍。

我有一个可重用的控件,可以根据某些状态标志(例如*ngIf="control.touched && control.invalid")显示验证消息。我遇到的问题是,无法检测touched标志何时更改,因此无法使用ChangeDetectorRef.

可以通过侦听事件来引用输入元素本身来完成click但这并不能说明何时markAsTouched()使用,并且传递对元素的引用并不总是可行的,而且总是不优雅。

有没有一种方法可以使用OnPush并仍然响应表单控件状态(例如touched),或者只是通常很痛苦?

angular2-changedetection angular angular-reactive-forms angular-changedetection

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

扩展XHTML

我正在编写一个jQuery插件,它使用一个属性来定义表单验证行为(是的,我知道已经有一个验证插件;这是我将要使用的学习练习).理想情况下,我想要这样的东西:

示例1 - 输入:

<input id="name" type="text" v:onvalidate="return this.value.length > 0;" />
Run Code Online (Sandbox Code Playgroud)

示例2 - 包装器:

<div v:onvalidate="return $(this).find('[value]').length > 0;">
   <input id="field1" type="text" />
   <input id="field2" type="text" />
   <input id="field3" type="text" />
</div>
Run Code Online (Sandbox Code Playgroud)

示例3 - 预定义:

<input id="name" type="text" v:validation="not empty" />
Run Code Online (Sandbox Code Playgroud)

这里的目标是允许我的jQuery代码找出需要验证的元素(这已经完成),并且仍然有标记是有效的XHTML,这是我遇到的问题.我很确定这需要结合使用DTD和XML Schema,但我不太确定如何执行.

基于这篇文章,我创建了以下DTD:

<!ENTITY % XHTML1-formvalidation1
    PUBLIC  "-//W3C//DTD XHTML 1.1 +FormValidation 1.0//EN"
            "http://new.dandoes.net/DTD/FormValidation1.dtd" >
%XHTML1-formvalidation1;

<!ENTITY % Inlspecial.extra 
  "%div.qname; " >

<!ENTITY % xhmtl-model.mod
    SYSTEM "formvalidation-model-1.mod" >  
<!ENTITY % xhtml11.dtd
    PUBLIC  "-//W3C//DTD XHTML 1.1//EN"
            "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" > …
Run Code Online (Sandbox Code Playgroud)

xhtml jquery xsd dtd

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

强制<div> </ div>到网页底部居中

<div>...</div>我的HTML中有一个部分基本上就像一个工具栏.

有没有办法可以将该部分强制到网页的底部(文档,而不是视口)并将其居中?

html javascript css ajax

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