小编Rag*_*hav的帖子

关于集合返回类型的问题

在我的 BL(将是公共 API)中,我使用 ICollection 作为我的 Find 方法中的返回类型,例如:

public static ICollection<Customer> FindCustomers()
{
   Collection<Customer> customers = DAL.GetCustomers();

   return customers;
}
Run Code Online (Sandbox Code Playgroud)

请注意使用 ICollection 而不是 Collection<>。

现在在我的 GUI 中,我需要将结果转换回 Collection,例如:

Collection<Customer> customers = (Collection<Customer>)BL.FindCustomers();
Run Code Online (Sandbox Code Playgroud)

这是因为我需要在返回的列表中使用一些 Collection<> 特定的方法,而 ICollection<> 无法做到这一点。

这是正确的用法吗?或者我应该简单地将返回类型从 Collection<> 改为 ICollection<> 以避免这种转换?

其次,我没有使用 IEnumerable,因为它比 ICollection 更通用,甚至没有像 Count 这样的简单属性。而且我真的没有看到在这里概括返回类型的意义。我错过了什么重要的东西吗?

c# collections

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

找不到模块“节点静态”

我正在尝试运行有关 webrtc 的示例。为此我去了

\n\n

https://bitbucket.org/webrtc/codelab/src/50a47bb092483fd7ca27998a365dff434919bf89?at=master

\n\n

在第 5 步,我需要运行 server.js。为此,我打开 Windows 命令提示符并输入:

\n\n

C:\\Program Files\\nodejs>节点 D:\\GITProjects\\codelab\\complete\\step5\\server.js

\n\n

但我收到了这个错误:

\n\n
module.js:338\n    throw err;\n          ^ Error: Cannot find module \'node-static\'\n    at Function.Module._resolveFilename (module.js:336:15)\n    at Function.Module._load (module.js:278:25)\n    at Module.require (module.js:365:17)\n    at require (module.js:384:17)\n    at Object.<anonymous> (D:\\GITProjects\\codelab\\complete\\step5\\server.js:1:76)\n\n    at Module._compile (module.js:460:26)\n    at Object.Module._extensions..js (module.js:478:10)\n    at Module.load (module.js:355:32)\n    at Function.Module._load (module.js:310:12)\n    at Function.Module.runMain (module.js:501:10)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经安装了节点静态模块,它位于

\n\n

“C:\\Program Files\\nodejs\\node_modules\\node-static”

\n\n

在此输入图像描述

\n\n

我仍然收到错误“找不到模块\'node-static\'”。

\n\n

环境“PATH”变量设置为“C:\\Users\\user\\AppData\\Roaming\\npm”

\n\n

我可以看到节点静态文件夹也存在于“C:\\Users\\user\\AppData\\Roaming\\npm\\node_modules\\node-static”路径中。

\n\n

编辑

\n\n

根据评论,我在 Windows 命令提示符下尝试安装节点静态:

\n\n

C:\\Program Files\\nodejs>npm …

javascript node.js

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

检测Windows Server 2012上是否安装了websocket

是否有任何代码或程序可以通过它确认 WebSocket 是否正确安装在我的 Windows Server 2012 服务器上

我遇到了 WebSocket 的问题。它无法在 Windows Server 2012 上运行。我已经在 Windows Server 2012 上安装了 WebSockets

在此输入图像描述

我已经重新启动服务器两次了。

WebSocket 无法在我的服务器上工作的证据是我的以下 url(Signalr 使用它来决定 WebSocket 是否打开)

http://abcdedf.com/signalr/default/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D&_=14530662444返回以下响应:

{
Url: "/signalr/default",
ConnectionToken: "xxxx",
ConnectionId: "cf63a537-ed4a-4d29-afaf-f0aec454b0c2",
KeepAliveTimeout: 6,
DisconnectTimeout: 9,
ConnectionTimeout: 110,
TryWebSockets: false,
ProtocolVersion: "1.5",
TransportConnectTimeout: 5,
LongPollDelay: 0
}
Run Code Online (Sandbox Code Playgroud)

即 TryWebSockets: false

该应用程序在我的本地 Windows 8 计算机上运行良好的相同代码。它给

尝试WebSockets:true

Windows Server 2012 上的 IIS 版本是 IIS 8.5。我的网站在 .Net Framework 4.5 下运行。Windows 防火墙已经关闭。在我的应用程序设置中,我也添加了以下内容:

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

在我的 web.config 中我也有这个:

 <webSocket enabled="true"/> …
Run Code Online (Sandbox Code Playgroud)

c# asp.net websocket signalr windows-server-2012

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

有关C#中自定义集合的问题

我想知道从自定义集合类返回对象时最好的模式是什么.为了说明我的问题,这是一个例子:

我有一个Customer类:

public class Customer
{
   //properties
   //methods
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个客户集合类:

public class Customercollection: Collection<Customer>
{

  public Collection<Customer> FindCustomers()
   {
     //calls DAL and gets a Collection of customers
     Collection<Customer> customers = DAL.GetCustomers();

     return customers;
   }
}
Run Code Online (Sandbox Code Playgroud)

现在,此方法的替代版本可以是:

public class Customercollection: Collection<Customer>
{

  public Collection<Customer> FindCustomers()
   {
     //calls DAL and gets a Collection of customers
     Collection<Customer> customers = DAL.GetCustomers();
     foreach(Customer c in customers)
     this.Add(c);
     return this;
   }
}
Run Code Online (Sandbox Code Playgroud)

我想讨论哪一个更好的方法?还有其他方法比两个以上的方法更好吗?

c# design-patterns

4
推荐指数
1
解决办法
795
查看次数

将DIV定位在具有可变高度的固定div下方

这是问题:让我说我有这样的事情:

<div id="leftcontainer">
    <div id="top" style="position:fixed"></div>
    <div id="below"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

我想在#top div下面有#below div,但不要使用margin-top,因为#top div将有不同的大小.此外,#below div的大小可能不同,应在#top div下滚动.

有没有人知道如何实现这一点?迎接 - 克里斯

css positioning css-position

4
推荐指数
1
解决办法
5902
查看次数

在SQL中根据"名字"+"姓氏"过滤行

我的数据库中有一个用户表,其中包含两列FirstName和LastName.现在在我的前端有一个文本框来过滤掉这个表中的用户.假设我以输入参数"@SEARCHKEYWORD"的形式从前端获取输入.我在下面创建了一个示例:


DECLARE @Test TABLE
([ID] INT IDENTITY,
[FNAME] NVARCHAR(100),
[LNAME] NVARCHAR(100)
)
INSERT INTO @Test( FNAME, LNAME )
SELECT 'John','Resig' UNION ALL
SELECT 'Dave','Ward' UNION ALL
SELECT 'Peter','Smith' UNION ALL
SELECT 'Dave','Smith' UNION ALL
SELECT 'Girija','Acharya'  UNION ALL
SELECT  'Devendra', 'Gujel' UNION ALL
SELECT 'Arjit', 'Gupta'

DECLARE @SEARCHKEYWORD NVARCHAR(100)

SELECT * FROM @Test WHERE FNAME +' '+ LNAME LIKE @SEARCHKEYWORD
Run Code Online (Sandbox Code Playgroud)

即到目前为止,我已经想过这个查询来过滤掉行,但它没有给出所需的结果:

 
SELECT * FROM @Test WHERE FNAME +' '+ LNAME LIKE @SEARCHKEYWORD
Run Code Online (Sandbox Code Playgroud)

Here are the desired outputs which I needed …

sql search

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

Web API响应中的自定义404错误消息

我需要修改Web API引发404错误时出现的消息:

现在,如果不存在任何api,就可以访问https:// mywebsite / api / foo /?%22%26gt;%26lt; script%26gt; _q_q =)(%26lt; / script%26gt ;

我得到以下回应:

{“ Message”:“未找到与请求URI'https :// mywebsite / api / foo /?\”> <script> _q_q =)(</ script>' 匹配的HTTP资源。”,“ MessageDetail”: “在与请求匹配的控制器'MyController'上未找到任何动作。”}

我要修改此消息。

为了做到这一点,我尝试了这个。

我在控制器上添加了一个自定义属性:

[NoActionFoundFilterAttribute]
public class MyController
Run Code Online (Sandbox Code Playgroud)

过滤器的代码为:

public class NoActionFoundFilterAttribute: ExceptionFilterAttribute
{
    public override void OnException(HttpActionExecutedContext context)
    {
        // My code
    }
}
Run Code Online (Sandbox Code Playgroud)

在Web API Config中,我已经添加了过滤器:

 config.Filters.Add(new NoActionFoundFilterAttribute());
Run Code Online (Sandbox Code Playgroud)

即使执行了上述所有步骤,在调用无效操作时,也不会单击OnException方法“ NoActionFoundFilterAttribute”文件。

您可以分享我缺少的内容以修改自定义404错误消息

c# asp.net asp.net-web-api2

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

C#OOPs架构问题

在尝试使我的架构灵活时,我面临着一个类解决问题.为简单起见,请考虑以下示例:

我有四个层:UI,BL,Common和DAL

我的BL层中有一个基类,定义如下:

public class User
    {
        private UserDTO _d;
        public User()
        {
            _d = new UserDTO();
        }
        public User(UserDTO d)
        {
            _d = new UserDTO(d);
        }
        public UserDTO D
        {
            get { return _d; }
            set { _d = value; }
        }

        //static method (I cannot make it non-static due to some reasons)
        public static User GetUser()
        {
            User user = new User(Provider.DAL.GetUser());
            return user;            
        }
    }
Run Code Online (Sandbox Code Playgroud)

DTO定义为:

public class UserDTO
    {
        public int ID;
        public UserDTO()
        {
        } …
Run Code Online (Sandbox Code Playgroud)

c# architecture oop

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

在不等待的情况下调用异步方法

我试图在不等待结果的情况下调用异步方法(在ASP.NET Web API 2应用程序中).我的意思是我希望主线程继续执行并且不等待被调用的方法来完成.我正在尝试这个片段:

// The async method:
private static async Task LogAsync(Exception exception, string ip, MethodBase method, object parameters) {
    // some stuff 
}

// The caller methods:
public static void Log1(Exception exception, object parameters) {
    LogAsync(exception, ip, method, parameters);
}
public static void Log2(Exception exception, object parameters) {
    Task.Factory.StartNew(() => LogAsync(exception, ip, method, parameters));
}
public static async void Log3(Exception exception, object parameters) {
    await LogAsync(exception, ip, method, parameters).ConfigureAwait(true);
}
public static async void Log4(Exception exception, object parameters) …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading asynchronous async-await

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

Handlebars.net使用中的noEscape选项禁用转义

我刚刚发现此链接使用Handlebars.js来对字符串中的html进行转义: Handlebars.js使用noEscape选项禁用转义吗?

var template = Handlebars.compile(source, {noEscape: true});

我在项目中使用的是Handlebars.Net,并且我想使用相同的配置来转义html。不幸的是,我无法找到任何重载来逃脱html。

只是:

Handlebars.Compile(template)
Run Code Online (Sandbox Code Playgroud)

您能帮我在该库中转义html标签吗?

.net handlebars.js handlebars.net

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