小编Sam*_*uel的帖子

使用两个具有相同命名空间的.NET库

我目前正在为公司维护一些旧代码.正如它会发生的那样,我正在修改的当前应用程序使用旧版本的内部库(我们称之为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.

.net c# vb.net dll

4
推荐指数
2
解决办法
6664
查看次数

如何在后台加载图像?

我正在尝试在后台加载图像,然后更新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)

c# wpf delegates image

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

从构建执行计划的角度来看,"select*"有什么影响?

我听说使用'select*'将增加SQL Server构建查询执行计划所需的时间,因为它必须找出引用表中存在哪些列.这同样适用于基于视图而不是表的查询吗?

t-sql sql-server

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

Visual Studio Debugger不会进入未使用的变量声明

调试器不想进入未使用的变量.如果我声明(var x = "hola")它不能识别x并且说它在当前上下文中不存在.当我做一些工作x然后它识别它.

c# debugging

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

c#auto property VS 2005?

自动属性在VS 2005中有效吗?我似乎无法让我的C#类与它们一起编译(与就地初始化相同).我安装了框架3 sp1.这些功能仅在VS 2008中可用,还是我做错了什么?

通过就地初始化,我的意思是:

SomeClass c = new SomeClass()
{
  Name = "",
  Value = 12345
};
Run Code Online (Sandbox Code Playgroud)

c# c#-3.0

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

代表驼峰类名称的缩写

我正在创建一个C#库,并且将使用他们使用的协议(TCP,UDP等)作为大多数公共类的前缀,并且我陷入了一个两难的境地:它应该是TCPXxxx或者TcpXxxx

.NET框架中似乎没有标准(IPAddress相对于TcpClient).

使用库时您更喜欢哪个:TCPXxxx或者TcpXxxx

.net c# naming-conventions

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

C#3.0 - 如何从MemoryStream将文件保存到数据库?

我正在尝试将PDF文件保存到SQL Server,我已经有一个生成PDF的方法,但是打开一个显示该文件的窗口.

但是,现在我必须生成PDF,但必须将其保存到图像字段中的数据库中.

我必须从MemoryStream对象中保存这个文件,我准备保存,显示等.

我有这个:

MemoryStream m = PDFHelper.gereratePDF(text, title);
Run Code Online (Sandbox Code Playgroud)

我正在googling aroung,我想我必须将这个MemoryStream转换为FileStream,所以我可以将它保存到DB,但我不知道如何.

谢谢!!

c# memorystream c#-3.0

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

试图了解MD5算法

我正在尝试使用MD5在C中做一些事情(后者试图用SHA1算法做一些事情).我的主要问题是我从来没有在C中做过任何复杂的事情,只是简单的东西(没有像指针或结构的指针).

我在这里得到了md5算法.

我包含了文件md5.cmd5.h我的C项目(使用代码块),但唯一的问题是我真的不明白如何使用它.我已阅读并重新阅读代码,但我不明白如何使用这些函数将"示例"转换为MD5哈希.

我有一段时间没有做过C编程(主要是php),所以我在这里有点迷失.基本上我要问的是一些使用示例.它们是通过md5main.c文件提供的,但我不理解它们.

我在这里瞄准了吗?我应该停止所有这一切并再次开始阅读C书,或者任何人都可以给我一些指示,看看我是否能解决这个问题.

谢谢.

c logic md5

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

为什么列表中的结构状态不能改变?

我知道这听起来很愚蠢.但我必须在这里做错事.

说,

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或函数式编程方法,那将是非常棒的.

c#

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

为什么我的界面没有继承?

我一定做错了什么

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]

注意:为简洁起见,剪切代码


更新

我意外地在两个不同的命名空间中定义了接口.没有更多的东西.

.net c# oop

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

当用作变量时,i_tmp2代表什么?

对不起,一个noobish的问题,但我在其他人的代码,迷迷糊糊的他是用i_tmp2一个内for循环.什么时候使用i_tmp2符号?

php

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

在Visual Studio 2008 C#代码中看不到方法等

我通常使用VB.NET编写代码,但我现在正在阅读C#.NET的教程.我期待看到一个下拉列表,用于选择代码文件顶部的方法和属性,就在我打开的代码文件的选项卡下面.但是,我没有看到这些.如果我打开VB代码,它可以正常工作.我试图在Visual Studio中寻找一个我没有打开过的选项,但我找不到我所遗漏的内容.有人有什么想法吗?

.net c# visual-studio-2008 visual-studio

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

帮我找到最好的WPF

我想找到人们从使用WPF中获得最大收益的东西,特别是:

  • 最好的和令人惊叹的UI示例
  • 没有其他UI可以轻松实现的黑暗角落(比如MFC或GTK)
  • 代码的专业示例

建议?

关于这个主题的最好的书可能是WPF in Action with Visual Studio 2008

.net c# wpf user-interface

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