现在学习WPF.今天发现了一些新的.Net依赖属性.他们带来的是什么
等等.
但我的问题是为什么它们需要在包含类中声明为静态?推荐的方法是为它们添加实例'wrapper'属性.为什么?
编辑:@Matt,但是这也不是要求在实例之间共享属性值 - 除非它当然是派生值?
Office 2007 带来了一个新功能,称为“内容控件”。我需要对此进行评估,看看这是否可以作为正在研究的问题的解决方案。
由于时间有限以及我对 Office 互操作痛苦的普遍蔑视,
也欢迎 RTFMsdn 链接。
到目前为止,我(从一些截屏视频中)看到现在可以定义模板单词文档,其内容可以从数据隐藏 XML 中插入。您可以根据需要创建此 XML...例如,将数据库的内容转换为 XML 形式。单词 doc 现在可以“数据绑定”到此 XML。
通过阅读Juval Lowy的这篇启发性文章,试图了解Generics
释义..当您定义Generic类定义时,它将被编译为IL.
MyList<int> 好处:没有装箱和拆箱惩罚. MyList<String>现在预先泛型我们可以编写带Object参数的方法.泛型声称100%的性能提升是因为它"避免了当您想要使用它时将对象类型向下转换为特定类型时所产生的性能损失"
// assume GetItem returns an Object
string sMyPreciousString = (string) obList.GetItem();
Run Code Online (Sandbox Code Playgroud)
当您从Object转发到特定引用类型时,这个性能会受到什么影响?此外,它似乎向对象(甚至泛型会做到这一点)的上传不是性能打击..为什么?
或者下次C++编译器扭曲你的手臂以转换为2个任意字符串类型只是为了弄乱你时,如何不杀死自己或某人?
我很难用C++编写代码,因为我习惯使用VB6,C#,Ruby来进行字符串操作.但是现在我花了超过30分钟试图将包含2个guid和一个字符串的字符串记录到调试窗口......并且它没有变得更容易而且我已经遇到了RPC_WSTR,std::wstring并且LPCWSTR
是否有简单(或任何)规则来了解它们之间的转换?或者只是经过多年的折磨才能实现?
基本上我正在寻找标准API和MS特定/ Visual C++库中最常用的字符串类型; 我知道下次该怎么办
Error 8 error C2664: 'OutputDebugStringW' : cannot convert parameter 1 from 'std::wstring' to 'LPCWSTR'
Run Code Online (Sandbox Code Playgroud)
更新:我修复了^^^^编译错误.我正在寻找一个更全面的答案,而不是我列举的具体问题的解决方案.
我下载了一个源文件的zip文件,其中包含一个带有多个入口点/主要方法的C#项目.因为我想修补一下,我在新的类型/类中创建了另一个这样的东西
class MyExperiments
{
static void Main(String[] args)
{
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
然后我切换到项目属性.只需将启动对象切换到MyExperiments呃?令我惊讶的是,下拉列表没有它.我重建,使方法公开,尝试了很多东西......但无济于事.最后,我在记事本中手动编辑了.csproj,然后就可以了.更多的修修补补,我删除了参数来实现它
static void Main()
Run Code Online (Sandbox Code Playgroud)
现在VS Project属性可以"看到"启动对象.所以现在我可以使用下拉列表选择它.然后我添加了String [],一切仍然有效.
对我来说似乎有点奇怪(因为最常见的形式是一个Main方法,带有C/C++时间命令行参数的参数).MSDN表示如果项目中存在有效的启动对象,则下拉列表将包含有效的启动对象.
我是红宝石方式的忠实粉丝.然而今天它阻碍了我.
事实上安装rails的方式(我在WinXP机器上作为域用户运行)是
>gem install rails在命令提示步骤2失败,一些函数getaddrhost无法运行.一些谷歌搜索告诉我这是一个已知问题 - 请参阅rubygems FAQ上的验证Windows代理问题
那里"使用-por或--http-proxy http://proxy:port"开关进行gem安装的建议选项也没有任何奇迹.
有一个链接到运行服务器以通过代理服务器的东西 - 但看起来它需要安装python(?? !!).所以我给了那个小姐.
我将尝试获取.gem文件(在找出所有相互依赖关系:()之后从ruby_home\lib\ruby\gems\1.8\cache我的友好的家用机器上进行USB驱动并将其驱动到本地安装宝石.有没有人有一点痛苦/快速弥合这种分歧的方法?
更新:第2天 .好的,所以我在当地有宝石.但是,如果我做了
>gem install activesupport-1.4.4 --local
ERROR: Error installing gem activesupport-1.4.4[.gem]: undefined method `includ
e?' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
我曾经尝试过ruby一次点击Windows的安装程序186-27 RC2和186-26最终版本.同样的问题.更多的谷歌搜索导致" 如果您在安装宝石时遇到问题...... ".最新的解决方法是:删除显示的GEM PATH文件夹中的source_cache文件gem env,然后执行gem update --system.当然,代理服务器会妨碍第2步.
这个问题是在我可以下载的某个后续版本中修复的吗?
我想要的是:
assert_equal 6, ones_complement(9) # 1001 => 0110
assert_equal 0, ones_complement(15) # 1111 => 0000
assert_equal 2, ones_complement(1) # 01 => 10
Run Code Online (Sandbox Code Playgroud)
输入的大小不固定为4位或8位.而是它的二进制流.
我所看到的:
v = "1001".to_i(2) => 9
Run Code Online (Sandbox Code Playgroud)
操作员有点翻转 ~
(~v).to_s(2) => "-1010"
sprintf("%b", ~v) => "..10110"
~v => -10
Run Code Online (Sandbox Code Playgroud)
我认为它与一个用于存储标志的东西有关...有人可以解释这个输出吗?如何在不采用字符串操作的情况下获得一个补码,例如从sprintf输出中删除最后的n个字符以获得"0110"或将0替换为1,反之亦然
我有一个WPF应用程序正在运行,它需要影响UI的所有操作都在UI线程上.WPF还提供了一个Dispatcher类来处理这个 - 所以我把它提取到一个依赖项中.
public interface UIActionExecutor
{
void Do(Action action);
}
Run Code Online (Sandbox Code Playgroud)
所以在我的生产代码中,我使用了一个委托给WPF Dispatcher的导出实现.我正在使用MEF进行DI.
现在问题是,在我的验收测试中,我需要替换容器中的部件/对象,该部件/对象UIActionExecutor由模拟器响应.所以我需要ExecutorUsingWpfDispatcher从我的容器中删除并添加MockUIActionExecutor它的位置.这听起来很简单(如果我没有使用MEF)......但我的搜索技巧并没有帮助我找到关于如何使用MEF容器做到这一点的答案?
更新: 如果有人想知道解决方案为何如何/如何运作 - 请阅读Glenn Block的博客文章#2.这就是我最终使用的
var defaultExportProvider = new CatalogExportProvider(__defaultCatalog);
var catalogOfMocks = new AssemblyCatalog(assemblyExportingMocks);
// order of params important (precedence left to right)
__container = new CompositionContainer(catalogOfMocks, defaultExportProvider);
defaultExportProvider.SourceProvider = __container
Run Code Online (Sandbox Code Playgroud) 我有一个用C#(.NET 4.0)编写的复杂WPF项目,我为(NUnit)编写了几个测试.这些测试存在于不同的类中,只要我为每个类单独运行测试,一切都很好.但是,一旦我尝试同时运行所有类的所有测试,第一个类的测试就会成功,但是一旦testrunner(Resharper或nunit-console)开始测试剩余的类,所有这些类都会失败并显示以下堆栈跟踪.
System.InvalidOperationException: The calling thread cannot access this object because a different thread owns it
at System.Windows.Threading.Dispatcher.VerifyAccess()
at System.Windows.Media.Imaging.BitmapDecoder.ToString()
at System.Windows.Media.Imaging.BitmapFrameDecode.ConvertToString(String format, IFormatProvider provider)
at System.Windows.Media.ImageSource.ToString()
at MUSTANG.ShowCase.ResourceLibrary.ResourceDictionaryManager.GetUriString(String pKey) in c:\Daten\Jenkins-ci\jobs\MUSTANG-Showcase-Release-VS2010\workspace\MUSTANG-Showcase\MUSTANG.ShowCase.ResourceLibrary\ResourceDictionaryManager.cs:Zeile 49.
Run Code Online (Sandbox Code Playgroud)
相应的代码如下:
public object GetValue(string pKey)
{
if (mDictionary.Contains(pKey))
{
return mDictionary[pKey];
}
return null;
}
public String GetUriString(string pKey)
{
object result = GetValue(pKey);
if (null == result)
{
Log.Warn(string.Format(@"Ressource '{0}' nicht gefunden!", pKey));
return "";
}
return result.ToString();
}
Run Code Online (Sandbox Code Playgroud)
当资源是图像时,GetUriString中的最后一行发生异常.Nunit似乎使用不同的线程来运行不同的测试类 - 它们仍按顺序运行.有没有办法解决这个问题,例如通过告诉NUnit或testrunners使用单个线程,在每个测试类运行后完全退出或类似?
编辑1:到目前为止我尝试过的内容:
[RequiresSTA]属性装饰测试 …下面是我的代码片段,当表名包含连字符时,我得到以下错误.我怎样才能解决这个问题?谢谢您的帮助.
alt text http://img109.imageshack.us/img109/148/createtable.png
ex = {"错误[42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]第1行:' - '附近的语法不正确."}
c# ×4
.net ×2
wpf ×2
c#-2.0 ×1
generics ×1
installation ×1
mef ×1
ms-word ×1
nunit ×1
operators ×1
ruby ×1
sql ×1
sql-server ×1
string ×1
types ×1
unit-testing ×1
vba ×1
visual-c++ ×1
word-2007 ×1