标签: class-library

Java/Eclipse相当于Visual Studio Console app + Class Library解决方案

我是.Net开发人员,但对于我目前的项目,我必须创建一些Java代码.我过去做了一些Java编码(我甚至使用Java学习了OOP),但我不熟悉Eclipse,我必须使用它.

我必须创建一些共享通用功能的Java控制台应用程序.我想将该常用功能捆绑到一个库(JAR文件)中,并使用命令行程序中的该文件.当我更改库时,还必须重建所有相关的控制台应用程序.

在Visual Studio(.Net)中,我将创建一个新的解决方案并添加一个"类库"项目和多个"控制台应用程序"项目,并使它们依赖于类库.我无法使用Eclipse/Java重新创建相同的设置.我想.Net类库的Java等价物是一个JAR文件.但是,我还没有找到如何在Eclipse中创建一个JAR文件项目(我可以将项目导出到JAR,但这是一个手动步骤;我喜欢这样自动去)并从多个"正常"引用这个JAR项目"Java项目.

我希望我已经清楚地解释了自己.任何人都能解释一下吗?

eclipse class-library jar

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

将.NET类库转换为多线程.NET类库的最佳实践

我有一些C#类库,它们的设计没有考虑并发,多线程,锁等等......

代码结构非常好,易于扩展,但它可以从多线程中受益匪浅:它是一组科学/工程库,需要在非常短的时间内执行数十亿次计算(现在它们不会带来好处从可用的核心).

我想将所有这些代码转换为一组多线程库,但我不知道从哪里开始,我没有任何以前的经验.

我可以使用任何可用的帮助,以及任何建议/建议.

.net c# multithreading class-library

5
推荐指数
2
解决办法
3732
查看次数

何时使用多个类库?

我什么时候应该在.NET中使用多个类库.我有一种情况,我需要使用Microsoft Office对象模型的功能来检查Microsoft Office文件的某些属性.我应该使用不同的类库来处理不同的文件类型.

eg:- 1 library for word files, 
     1 library for ppt, 
     so on.
Run Code Online (Sandbox Code Playgroud)

或者我应该把所有东西都塞进一个类库中.

在构建多个类库之前,我应该自己提出什么问题.

.net c# class-library base-class

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

我可以在类库中向AppDomain.CurrentDomain.UnhandledException添加处理程序

我想订阅AppDomain.CurrentDomain.UnhandledException事件以捕获任何错误,因为我正在尝试新的设计模式,我不想在每个事件上放置try catch.

通常在win form app中有一个主入口点,但这是一个由另一个应用程序调用的类库.

在类库中是否有一个主要的入口点,我可以在这里挂钩这个事件,或者它是否在类库中是不可能的,除非我确定在其他任何方法之前调用一个方法?

c# class-library unhandled-exception

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

用于日志记录的C#类库中未处理的异常

我是软件开发的新手,也是stackoverflow的新手,所以对我来说很容易.

背景:我正在开发一个C#类库,它通过tcp/ip处理第三方应用程序发送的xml消息(使用异步套接字).我正在使用com-interop将类库公开给Vb6应用程序.当C#库处理它通过套接字接收的xml时,它会引发消费vb6应用程序订阅的各种事件(这样,当我们最终在.Net中重写整个应用程序时,我们已经完成了这个组件).

问题:我想捕获所有仅用于登录的未处理异常.在winforms应用程序中,您可以将事件连接到AppDomain.CurrentDomain.UnhandledException和Application.ThreadException.有没有办法同样抓取异常数据来记录类库中的信息?

重点:

  • 我不是试图从这些异常中恢复,而只是记录它们并让异常传播并在需要时崩溃应用程序.

  • 我正在尽力在本地捕获所有特定异常,无论我知道它们可能发生在哪里.因此,我的目的是记录真正意外的异常.

  • 我知道有人会说这将是一个糟糕的设计模式.我应该让调用者处理这些异常.问题是vb6应用程序没有像我想的那样具有强大的错误处理能力.首先,我想记录堆栈跟踪,以便如果vb6应用程序因我的dll而崩溃,我可以查看日志,以便提醒我可能需要更改的c#代码的潜在区域.

任何人都可以为我提供一些方向吗?到目前为止,我发现的最佳选项似乎是在每个公共方法中放置一个通用的try catch块,记录异常,然后抛出它.这似乎不太理想:

public void SomeMethod()
{
    try
    {
        // try something here...
    }
    catch (Exception ex)
    {
        Log(ex);
        throw;
    }
}
Run Code Online (Sandbox Code Playgroud)

这不仅看起来像一个糟糕的设计,而且我不知道如果其中一个异步回调在不同的线程上导致异常而不是调用该方法会发生什么.这个通用的try/catch块是否仍会捕获这样的异常?

谢谢你的帮助.

编辑:我最初标记@Eric J.的答案是正确的,但在尝试实现解决方案后,我发现它不能很好地处理我正在使用的套接字类的异步回调.一旦使用线程池线程来触发异步回调,我似乎无法捕获堆栈中稍后发生的任何异常.我是否需要使用AOP框架,还是有其他方法来捕获这些异常?

c# multithreading class-library com-interop unhandled-exception

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

在c#类库的弹出窗口中显示图像

我需要在ac#class library创建的弹出窗口中显示Bitmap图像.这怎么可能?

我尝试过以下方法:

        Bitmap img = tpv.Img();
        Graphics graphics = Graphics.FromImage(img);
        graphics.DrawImage(img, 0, 0);
Run Code Online (Sandbox Code Playgroud)

        Bitmap img = tpv.Img();
        PictureBox pb = new PictureBox();
        pb.Size = img.Size;
        pb.Image = img;
        pb.Show();
Run Code Online (Sandbox Code Playgroud)

但是没有显示窗口.是否有可能获得一个类库来创建一个显示位图图像的弹出窗口?

c# class-library image bitmap popup

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

类库(.dll)应该从哪里读取它的配置?

我已经在研究.net项目,但我认为这个问题适用于任何编程语言/框架.

问题是读取类库配置的好方法是什么.我可以想到以下选项:

  1. 从应用程序域的配置文件中读取.例如,在.net web app的情况下,从web.config中读取
  2. 从为此类lib创建的特定自定义文件中读取.就像为类lib创建一个xml文件并将配置放在那里一样.
  3. 调用者应该传递类lib所需的配置(通过类构造函数).因此,在这种情况下,类lib不直接从配置文件中读取,而是希望调用者发送所需的信息.

任何想法/偏好?

.net dll configuration class-library web-config

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

C#中类库的全局错误处理程序

有没有一种方法可以捕获和处理在类库的任何方法中引发的所有异常的异常?

我可以在每个方法中使用try catch构造,如下面的示例代码所示,但是我正在寻找类库的全局错误处理程序。该库可由ASP.Net或Winforms应用程序或其他类库使用。

这样做的好处是开发更容易,并且不需要在每种方法中重复执行相同的操作。

public void RegisterEmployee(int employeeId)
{
   try
   {
     ....
   }
   catch(Exception ex)
   {
     ABC.Logger.Log(ex);
   throw;
   }
}  
Run Code Online (Sandbox Code Playgroud)

c# error-handling class-library

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

无法发布将类库引用到Azure的ASP.NET 5

最初我有一个可以发布到Azure的ASP.NET 5项目,没有任何问题.然后我决定将DAL分成一个单独的类项目,但遇到了许多依赖问题.然后我决定用空白类库创建一个空白项目,看看我是否能解决问题所在,但我甚至都无法发布.

脚步:

  1. 创建新的ASP.NET 5 Web API预览模板项目(也创建解决方案).
  2. 将类库添加到解决方案中.
  3. 从4.6更改类库目标框架到.NET 4.5.1
  4. ASP.NET 5项目中的引用类库.
  5. 尝试发布.

这是项目结构:

在此输入图像描述

由此产生的ASP.NET 5 project.json:

"frameworks": {
    "dnx451": {
        "dependencies": {
            "ClassLibrary1": "1.0.0-*"
        }
    },
    "dnxcore50": { }
},
Run Code Online (Sandbox Code Playgroud)

所以它成功引用,我可以在自托管上构建和部署,但如果我尝试将其发布到Azure,我会收到以下错误消息:

The "Dnu" task failed unexpectedly.
System.Exception: 
Microsoft .NET Development Utility CLR-x86-1.0.0-beta6-12256
Copying to output path C:\Users\MyUserDir\AppData\Local\Temp\PublishTemp
Time elapsed 00:00:04.1309210

   at Microsoft.DNX.Tasks.Dnu.Execute()
   at      Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.    <ExecuteInstantiatedTask>d__26.MoveNext()
Run Code Online (Sandbox Code Playgroud)

我使用的是Visual Studio 2015和ASP.NET 5 Beta 7.

编辑: 经过一些游戏,我不认为我的答案是正确的.我现在意识到有些情况下不能使用新类型的类库,例如现有的旧类库,这对端口来说可能是不切实际的.有办法做到这一点吗?

我已经尝试过dnu publish,它发布完全没问题.然后我将输出FTP到服务器上,然后它给了我一个Runtime Error.我尝试使用Visual Studio远程调试它.我可以看到当我访问网站时抛出异常,但我无法确定问题究竟是什么.抛出的第一个例外之一是:

Exception thrown: 'System.InvalidOperationException' in AspNet.Loader.dll …

c# asp.net class-library azure asp.net-core

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

无法在Visual Studio 2017中添加app.config文件?

在Visual Studio 2017中工作; 我在项目中添加了一个类库。现在我要添加一个app.config文件。

当我尝试通过“添加新项目”进行添加但项目列表中缺少配置文件时。

我该怎么做?

app-config class-library visual-studio-2017

5
推荐指数
2
解决办法
4678
查看次数