我目前正在为公司维护一些旧代码.正如它会发生的那样,我正在修改的当前应用程序使用旧版本的内部库(我们称之为Lib1.dll).他们还有一个名为Lib2.dll的新版本库,它以多种方式改进了以前的库.
不幸的是,Lib2并不向后兼容Lib1.更糟糕的是,它们都使用相同的命名空间Product.Common.
如何在同一个项目中使用Lib2和Lib1?现在,如果我添加对它们的引用,VS告诉我某些类是不明确的(这是有道理的,因为它们使用相同的命名空间).
基本上,我需要这样的东西:
Imports Lib1:Product.Common.Class
Run Code Online (Sandbox Code Playgroud)
我正在使用VB.NET 1.1.
我正在尝试在后台加载图像,然后更新UI.我整天都在玩这个,我不知道我错过了什么.我一直收到以下错误:
"调用线程无法访问此对象,因为另一个线程拥有它."
我已经在示例后跟随示例,但我似乎无法找到答案.我还包含了在另一个BeginInvoke中触摸UI的代码.
更新3:故事的寓意.ImageSource对于访问不是线程安全的.
更新2:这必须是一个简单的解决方案:).我尝试了克隆,但这并没有带来成功,但我确实得到了一个不同的错误:"调用目标引发了异常."
更新1:我尝试了BackgroundWorker,但我仍然得到相同的错误,但它发生在brush.ImageSource.Height上.我是否正确发信号通知UI?有什么建议?
这是我的XAML:
<Window x:Class="Slideshow.Show"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<DockPanel>
<Canvas Background="Black" Name="canvas">
<Viewbox Name="background" Stretch="Uniform">
<Rectangle name="background" />
</Viewbox>
</Canvas>
</DockPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
以下是一些背后的代码:
namespace Slideshow
{
public class Show
{
public Show()
{
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += new DoWorkEventHandler(bw_DoWork);
bw.RunWorkerCompleted +=
new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
bw.RunWorkerAsync();
}
void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
BitmapSource bitmap = e.Result as BitmapSource;
if (bitmap != null)
{
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal
(ThreadStart)delegate()
{
Image image = new Image();
image.Source = bitmap;
background.Child …Run Code Online (Sandbox Code Playgroud) 我听说使用'select*'将增加SQL Server构建查询执行计划所需的时间,因为它必须找出引用表中存在哪些列.这同样适用于基于视图而不是表的查询吗?
调试器不想进入未使用的变量.如果我声明(var x = "hola")它不能识别x并且说它在当前上下文中不存在.当我做一些工作x然后它识别它.
自动属性在VS 2005中有效吗?我似乎无法让我的C#类与它们一起编译(与就地初始化相同).我安装了框架3 sp1.这些功能仅在VS 2008中可用,还是我做错了什么?
通过就地初始化,我的意思是:
SomeClass c = new SomeClass()
{
Name = "",
Value = 12345
};
Run Code Online (Sandbox Code Playgroud) 我正在创建一个C#库,并且将使用他们使用的协议(TCP,UDP等)作为大多数公共类的前缀,并且我陷入了一个两难的境地:它应该是TCPXxxx或者TcpXxxx?
.NET框架中似乎没有标准(IPAddress相对于TcpClient).
使用库时您更喜欢哪个:TCPXxxx或者TcpXxxx?
我正在尝试将PDF文件保存到SQL Server,我已经有一个生成PDF的方法,但是打开一个显示该文件的窗口.
但是,现在我必须生成PDF,但必须将其保存到图像字段中的数据库中.
我必须从MemoryStream对象中保存这个文件,我准备保存,显示等.
我有这个:
MemoryStream m = PDFHelper.gereratePDF(text, title);
Run Code Online (Sandbox Code Playgroud)
我正在googling aroung,我想我必须将这个MemoryStream转换为FileStream,所以我可以将它保存到DB,但我不知道如何.
谢谢!!
我正在尝试使用MD5在C中做一些事情(后者试图用SHA1算法做一些事情).我的主要问题是我从来没有在C中做过任何复杂的事情,只是简单的东西(没有像指针或结构的指针).
我包含了文件md5.c和md5.h我的C项目(使用代码块),但唯一的问题是我真的不明白如何使用它.我已阅读并重新阅读代码,但我不明白如何使用这些函数将"示例"转换为MD5哈希.
我有一段时间没有做过C编程(主要是php),所以我在这里有点迷失.基本上我要问的是一些使用示例.它们是通过md5main.c文件提供的,但我不理解它们.
我在这里瞄准了吗?我应该停止所有这一切并再次开始阅读C书,或者任何人都可以给我一些指示,看看我是否能解决这个问题.
谢谢.
我知道这听起来很愚蠢.但我必须在这里做错事.
说,
struct lala
{
private bool state1;
public lala(bool state1)
{
this.state1 = state1;
}
public void SetState1ToTrue()
{
this.state1 = true;
}
public bool GetState1()
{
return this.state1;
}
}
Run Code Online (Sandbox Code Playgroud)
然后某个地方......
List<lala> lalas = new List<lala>();
lalas.Add(new lala(false));
lalas.Add(new lala(false));
lalas[0].SetState1ToTrue();
// Why is it False???
Console.WriteLine(lalas[0].GetState1());
Run Code Online (Sandbox Code Playgroud)
是否有任何变通方法,除了将其更改为:
List<lala> lalas = new List<lala>();
lalas.Add(new lala(false));
lalas.Add(new lala(false));
lala newLala = lalas[0];
newLala.SetState1ToTrue();
lalas[0] = newLala;
// It's True, finally.
Console.WriteLine(lalas[0].GetState1());
Run Code Online (Sandbox Code Playgroud)
看起来很糟糕,不优雅,浪费了2行代码.如果说1行代码中有任何Linq-ish或函数式编程方法,那将是非常棒的.
我一定做错了什么
public interface IActor
{
//actor stuff
}
public class BaseShip : IActor
{
//base ship stuff
}
public class PlayerShip: BaseShip
{
//Only the stuff for this particular ship
}
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用:
IActor player = new PlayerShip();
Run Code Online (Sandbox Code Playgroud)
要么
List<IActor> actors = new List<IActor>(){new PlayerShip()};
Run Code Online (Sandbox Code Playgroud)
我得到无法从[PlayerShip]转换为[IActor]
注意:为简洁起见,剪切代码
我意外地在两个不同的命名空间中定义了接口.没有更多的东西.
对不起,一个noobish的问题,但我在其他人的代码,迷迷糊糊的他是用i_tmp2一个内for循环.什么时候使用i_tmp2符号?
我通常使用VB.NET编写代码,但我现在正在阅读C#.NET的教程.我期待看到一个下拉列表,用于选择代码文件顶部的方法和属性,就在我打开的代码文件的选项卡下面.但是,我没有看到这些.如果我打开VB代码,它可以正常工作.我试图在Visual Studio中寻找一个我没有打开过的选项,但我找不到我所遗漏的内容.有人有什么想法吗?
我想找到人们从使用WPF中获得最大收益的东西,特别是:
建议?
关于这个主题的最好的书可能是WPF in Action with Visual Studio 2008