标签: class-library

可以将ASP.NET MVC3 Controller(和View?)重新分发为类库dll吗?

是否可以在类库中添加单个Controller和可能的一个或两个视图...然后可以重新分配(即通过NuGet)并在各种应用程序中重用?

我正在考虑提供一个默认视图(或两个),但允许消费者通过公共属性覆盖此视图.

可能?

.net asp.net-mvc class-library reusability asp.net-mvc-3

6
推荐指数
1
解决办法
2036
查看次数

Azure类库访问GetConfigurationSettingValue与web.config

我有一个Azure工作者角色和ASP.NET网站之间共享的类库.库中的方法需要从配置中提取值以确定它是否应该发送电子邮件.

在ASP.NET站点中,设置位于web.config中:

<add key="SendEmails" value="true"/>
Run Code Online (Sandbox Code Playgroud)

在Azure辅助角色中,它位于ServiceConfiguration.Cloud.cscfg中:

<Setting name="SendEmails" value="true"/>
Run Code Online (Sandbox Code Playgroud)

我想要做的是让我的类库能够访问任一配置设置,具体取决于它运行的环境.

c# class-library azure

6
推荐指数
1
解决办法
4430
查看次数

一个或多个解决方案的单元测试项目

在我的解决方案中,我有一个控制台应用程序和另外两个类库项目 - 共计3个项目.

我想现在添加一个单元测试项目.我的问题是,我在解决方案中的每个"常规项目"中添加一个"单元测试项目",还是可以测试所有三个单元测试项目?

换句话说,如果我的项目是projA,projB和projC,我是否会添加三个单元测试项目,例如projA.Tests,projB.Tests等.或者是一个单元测试项目,可以处理所有这三个项目?

c# unit-testing mstest class-library visual-studio-2015

6
推荐指数
1
解决办法
1508
查看次数

一般地开发类库和数据库层的最佳实践是什么?

我将开发一个数据库层来公开一组功能,这些功能将提供对数据库的读写.我有一系列与此相关的问题,我希望有人提出建议

  1. 如何处理数据库异常?(即:超时异常)或让dll客户端处理它们

  2. dll不是线程安全的,所以我应该为每个dll实例使用单个连接吗?因为这提高了性能.

  3. 开发类库是否有任何一般规则?

我正在使用C#vs2008和SQL2008

c# class-library

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

用于日志记录的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万
查看次数

如何在C#类库项目(VS2012)中嵌入和使用.txt文件作为资源?

我已经寻找了很多,但我还没有找到解决这个看似简单的问题的方法.

我能够在控制台应用程序项目中添加一个名为"CSVData.txt"的TXT(CSV)文件作为资源,并使用命名空间轻松访问它 - 它在项目中命名为"CSVData".

  string Temp = Properties.Resources.CSVData;
Run Code Online (Sandbox Code Playgroud)

但是当我创建一个类库项目时,我不能:显然命名空间"Properties.Resources"中没有任何内容,即使它是在Console应用程序项目中成功创建的.

使用具有相同结果的新项目多次测试.

我确信这是非常非常简单的事情,但我不能为我的生活想出这个.

c# class-library embedded-resource visual-studio-2012

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

组件与库

我对组件和库这两个词感到非常困惑。我知道组件是紧密绑定的,功能单元和模块化,库也是如此。在这两种情况下,绑定都是在编译时完成的。那么是什么特性让它们与众不同呢?

oop components class-library shared-libraries

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

类库和ASP.NETvNext类库之间的区别?

Class Library&ASP.NETvNext Class Library项目之间有什么区别?从项目创建开始VS 14 CTP,似乎类库根本没有改变,而'ASP.NETvNext类库'包含新的project.json文件.但是,目前尚不清楚它是否具有与ASP.NETvNext相关的任何好处?

链接表示此ASP.NETvNext库项目的编译是动态的.这两者之间还有其他差异吗?

c# class-library asp.net-core

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

在 ASP.NET MVC 项目中使用类库中的 Javascript 文件

假设我有一个包含 HelloWorld.js 文件的类库。

该文件包含几个 JavaScript 函数,例如:

function Hello_alert() {
   alert("Hello World!!");
}
Run Code Online (Sandbox Code Playgroud)

function Hello_console() {
   console.log("Hello World!!");
}
Run Code Online (Sandbox Code Playgroud)

我想要这样我就可以在ASP.NET MVC页面上单独访问 HelloWorld.js 文件内的函数,例如 Home 文件夹内的 Index.cshtml。(如果做不到这一点,我会很高兴访问 .js 文件。)

我已经将 .js 更改为 EmbeddedResource 并将其添加到程序集中,如下所示:

[assembly: WebResource("JSLibrary.Scriptss.HelloWorld.js", "application/x-javascript")]
Run Code Online (Sandbox Code Playgroud)

; 在我的 MVC 项目中引用了 DLL,并且 DLL 命名空间显示在 Intellisense 上,因此我猜测它的链接正确。

现在,我一整天都在不停地谷歌搜索,我找到了一种解决方案,可以满足我的需要,但它是针对Web Forms 的,使用 Page.ClientScript 将脚本注册到页面本身中,这允许人们调用该页面上 .js 文件内的函数。这几乎就是我想要做的,除了我在MVC中需要它,它不使用这样的“Page”类。

我发现的 closes 等价物与捆绑包有关,但我找不到任何可以遵循的教程。

那么,我的问题是,如何以某种方式从 DLL 注册 Javascript 文件,以便我能够从ASP.NET MVC项目调用它们?

- - - - 更新: - - - …

javascript asp.net model-view-controller dll class-library

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