在我的 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 这样的简单属性。而且我真的没有看到在这里概括返回类型的意义。我错过了什么重要的东西吗?
我正在尝试运行有关 webrtc 的示例。为此我去了
\n\nhttps://bitbucket.org/webrtc/codelab/src/50a47bb092483fd7ca27998a365dff434919bf89?at=master
\n\n在第 5 步,我需要运行 server.js。为此,我打开 Windows 命令提示符并输入:
\n\nC:\\Program Files\\nodejs>节点 D:\\GITProjects\\codelab\\complete\\step5\\server.js
\n\n但我收到了这个错误:
\n\nmodule.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)\nRun Code Online (Sandbox Code Playgroud)\n\n我已经安装了节点静态模块,它位于
\n\n“C:\\Program Files\\nodejs\\node_modules\\node-static”
\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\nC:\\Program Files\\nodejs>npm …
是否有任何代码或程序可以通过它确认 WebSocket 是否正确安装在我的 Windows Server 2012 服务器上
我遇到了 WebSocket 的问题。它无法在 Windows Server 2012 上运行。我已经在 Windows Server 2012 上安装了 WebSockets
我已经重新启动服务器两次了。
WebSocket 无法在我的服务器上工作的证据是我的以下 url(Signalr 使用它来决定 WebSocket 是否打开)
{
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) 我想知道从自定义集合类返回对象时最好的模式是什么.为了说明我的问题,这是一个例子:
我有一个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)
我想讨论哪一个更好的方法?还有其他方法比两个以上的方法更好吗?
这是问题:让我说我有这样的事情:
<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下滚动.
有没有人知道如何实现这一点?迎接 - 克里斯
我的数据库中有一个用户表,其中包含两列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)
即到目前为止,我已经想过这个查询来过滤掉行,但它没有给出所需的结果:
Run Code Online (Sandbox Code Playgroud)
SELECT * FROM @Test WHERE FNAME +' '+ LNAME LIKE @SEARCHKEYWORD
Here are the desired outputs which I needed …
我需要修改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错误消息
在尝试使我的架构灵活时,我面临着一个类解决问题.为简单起见,请考虑以下示例:
我有四个层: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) 我试图在不等待结果的情况下调用异步方法(在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) 我刚刚发现此链接使用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标签吗?
c# ×6
.net ×2
asp.net ×2
architecture ×1
async-await ×1
asynchronous ×1
collections ×1
css ×1
css-position ×1
javascript ×1
node.js ×1
oop ×1
positioning ×1
search ×1
signalr ×1
sql ×1
websocket ×1