我一直在使用partial class修饰符,以便将helper类放在自己的文件中.
今天我们得到了一个新人,他说他工作的最后一个团队不允许部分类,因为修改一个单独的文件中的帮助器类会导致主要的部分类文件与更改失败.此外,他们只允许在主类中放置辅助类作为最后的手段,以便所有内容保持解耦.
你怎么看?使用像这样的部分类有什么问题,还是归结为偏好?
例如,我通常有这样的事情:
...
// Inside of MainClass.cs I have code like this:
public abstract partial class MainClass
{
// ...
}
// Then in the MainClass.Helper1.cs I have:
partial class MainClass
{
private class Helper1
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud) 我似乎无法找到任何这方面的例子.我在Node的github上看到一个列表,上面写着"报纸俱乐部 - 使用node.js将令人讨厌的SOAP接口包装到InDesign Server.",但是我没有看到任何代码.
谢谢.
编辑:我猜我可以找到任何javascript/SOAP工具包并将其移植到Node.对好的建议有什么建议吗?
我需要将一个(可能)以null结尾的ascii字节数组转换为C#中的字符串,我发现这样做的最快方法是使用下面显示的UnsafeAsciiBytesToString方法.此方法使用String.String(sbyte*)构造函数,其中包含警告:
"假设value参数指向一个数组,该数组表示使用默认ANSI代码页编码的字符串(即Encoding.Default指定的编码方法).
注意:*因为默认的ANSI代码页是系统相关的,所以此构造函数从相同的有符号字节数组创建的字符串可能在不同的系统上有所不同.* ......
*如果指定的数组不以null结尾,则此构造函数的行为取决于系统.例如,这种情况可能会导致访问冲突.* "
现在,我很肯定字符串编码的方式永远不会改变......但是我的应用程序运行的系统上的默认代码页可能会改变.那么,为什么我不应该为使用String.String(sbyte*)而尖叫呢?
using System;
using System.Text;
namespace FastAsciiBytesToString
{
static class StringEx
{
public static string AsciiBytesToString(this byte[] buffer, int offset, int maxLength)
{
int maxIndex = offset + maxLength;
for( int i = offset; i < maxIndex; i++ )
{
/// Skip non-nulls.
if( buffer[i] != 0 ) continue;
/// First null we find, return the string.
return Encoding.ASCII.GetString(buffer, offset, i - offset);
}
/// Terminating null not found. Convert the entire section …Run Code Online (Sandbox Code Playgroud) 我正在构建一个ASP.NET Web窗体应用程序(而不是站点),每当我使用Internet Explorer进行调试时,我似乎无法使用Visual Studio 2013 Pro禁用集成的Javascript调试.
如何让它停止破坏Javascript异常?
我的操作系统是使用IE11的Windows 2012 Server R2(因此,相当于Windows 8.1 Pro).我已经尝试了我能找到的每一个设置,但到目前为止还没有任何工作.我甚至已经退出并重新登录.我现在要尝试完全重启.
下面的屏幕截图显示了我尝试过的所有设置.




javascript debugging internet-explorer visual-studio visual-studio-2013
我用Visual Studio 2013,Update 2创建了一个新的ASP.NET WebForms应用程序.然后我更新了所有的NuGet包并删除了所有的OAuth,因为我只想要"表单"身份验证,这是我所熟悉的.
我想要的是配置OWIN/ASP.NET Identity框架,以便所有页面都需要授权,包括默认页面 - 因此用户应该看到的第一个页面是Login页面.这样做的正确方法是什么?我在Internet上找不到任何显示如何使用OWIN/ASP.NET标识保护WebForms页面的资源.
我将以下XML添加到我的主web.config文件的底部,我收到一个错误:
<authorization>
<deny users="?"/>
</authorization>
Run Code Online (Sandbox Code Playgroud)
错误是:无法访问请求的页面,因为页面的相关配置数据无效.
我的表有一个名为"RowVer"的时间戳列,LINQ映射到System.Data.Linq.Binary类型.这种数据类型对我来说似乎没用,因为(除非我遗漏了什么)我不能做这样的事情:
// Select all records that changed since the last time we inserted/updated.
IEnumerable<UserSession> rows = db.UserSessions.Where
( usr => usr.RowVer > ???? );
Run Code Online (Sandbox Code Playgroud)
所以,我正在寻找的解决方案之一是添加一个名为RowTrack的新"计算列",它在SQL中定义如下:
CREATE TABLE UserSession
(
RowVer timestamp NOT NULL,
RowTrack AS (convert(bigint,[RowVer])),
-- ... other columns ...
)
Run Code Online (Sandbox Code Playgroud)
这允许我像我想要的那样查询数据库:
// Select all records that changed since the last time we inserted/updated.
IEnumerable<UserSession> rows = db.UserSessions.Where
( usr => usr.RowTrack > 123456 );
Run Code Online (Sandbox Code Playgroud)
这是一个糟糕的做事方式吗?查询计算列的性能如何?有更好的解决方法吗?
此外,我正在开发针对Sql Server 2000的最终向后兼容性,但我可以与老板谈论使2005年成为最低的共同点.
我正在使用一些表,我希望C#类具有与基础表列不同的属性名称.但是,当我使用Translate方法读取结果时,永远不会填充与源名称不匹配的属性.即使我使用Linq生成SQL.
例如,我的表在DB中定义如下:
CREATE TABLE User_Entry (
UserId int IDENTITY (1, 1) NOT NULL,
Login_Id varchar (50) NOT NULL,
Active char(1) NOT NULL,
PASSWORD varchar(75) NULL
)
Run Code Online (Sandbox Code Playgroud)
这是它映射到的类(由LINQ设计器生成...... LINQ属性和为简洁起见而遗漏的其他东西):
public partial class User
{
int UserId;
string Login;
string Active,
string Pwd
}
Run Code Online (Sandbox Code Playgroud)
当我执行以下操作时,不会填充Login和Pwd属性,但UserId和Active属性是.
Data.DbContext db = new Data.DbContext();
IQueryable query = db.Users.Where(usr => usr.Login == request.LoginString);
SqlCommand cmd = (SqlCommand)data.GetCommand(query);
... execute the command (asynchronously) ...
User user = db.Translate<User>( dataReaderResult ).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
!此时,我检查用户对象,我可以看到Login和Pwd列没有填充!
这是生成的sql:
exec sp_executesql N'SELECT [t0].[UserID] AS [UserId], …Run Code Online (Sandbox Code Playgroud) 我的问题是:我读MSDN错了还是MSDN错了?我试图通过相对URI 引用图像资源.
标题为WPF中的包URI的MSDN页面明确指出:
"本地程序集子文件夹中的资源文件"= "/ SUBfolder/ResourceFile.xaml "
在表2中:标记中的相对URI(此处为 http://msdn.microsoft.com/en-gb/library/aa970069.aspx).
因此,我在Vs2010(v10.0.40219.1 SP1Rel)中创建了新的WPF/.NET 4.0项目进行测试.
Startup Project: TryUri
App.xaml
MainWindow.xaml
Custom Ctrl Project: TryUri.CCL
Icons/folder.png <-- Marked As Resource!
Views/TestUC.xaml
Run Code Online (Sandbox Code Playgroud)
在TestUC.xaml中:
<Canvas>
<Border>
<Image Source="/Icons/folder.png" Height="Auto" Width="Auto" />
</Border>
</Canvas>
Run Code Online (Sandbox Code Playgroud)
在MainWindow.xaml中:
// xmlns:uc="clr-namespace:TryUri.CCL.Views;assembly=TryUri.CCL"
<uc:TestUC />
Run Code Online (Sandbox Code Playgroud)
结果:图像没有显示!!
当我将路径更改为"../Icons/folder.png"时,它确实有效.
如果我将Icons/folder.png复制到TryUri.CCL/Views /文件夹中,那么"Icons/folder.png"就可以了.
但是,我永远无法像MSDN所述的方式那样使用"/Icons/folder.png"中的前导斜杠.
我想在运行时动态地将MEF Export属性应用于某个类型,就好像该类型在编译时应用了Export属性一样.
有一个简单的方法吗?
除此之外,是否有一种复杂的方法可以做到这一点?
我正在寻找Silverlight来构建一个"跨平台"的桌面应用程序(无论如何都是Windows和Mac),但有一个显示阻止器,我无法找到解决方法.在Mac OS上,在Adobe AIR中,AIR应用程序可以修改Mac OS菜单栏上的主窗口菜单(文件,编辑,查看,帮助等).我无法从Silverlight OOB中找到一种方法.
对于Windows显然我可以在XAML中创建自己的菜单并使用它.然而,这并不适合在所有与Mac OS和它的外观很时髦的Mac用户.对于很多人来说,这可能不是一个显示器,但对我来说却是.我可以做些什么来解决这个等待微软实施它的问题?(我怀疑他们会这样.)
我唯一能想到的是使用一个包含WebView的窗口构建我自己的OS X应用程序,然后将其导航到我的silverlight应用程序.但是,在那一点上我失去了完全信任的提升,真的很糟糕.
macos silverlight silverlight-4.0 silverlight-oob silverlight-5.0
.net ×4
c# ×4
javascript ×2
sql-server ×2
ascii ×1
asp.net ×1
coding-style ×1
composition ×1
debugging ×1
identity ×1
linq ×1
linq-to-sql ×1
macos ×1
mef ×1
node.js ×1
owin ×1
performance ×1
silverlight ×1
soap ×1
soap-client ×1
string ×1
web-config ×1
windows ×1
wpf ×1