我正在调试以下代码:
class A
{
public virtual string X => "A";
}
class B : A
{
public bool OwnX { get; set; } = true;
public override string X
=> OwnX ? "B" : base.X; // (o)
}
class Program
{
static void Main() => Console.WriteLine(new B().X);
}
Run Code Online (Sandbox Code Playgroud)
我在标有的线上有一个断点(o).当断点命中时,我正在尝试评估base.X并获得其值"B":
问题是:为什么不"A"呢?
在Wp7上,当用户在显示电话键盘时按下页面上的"开始"按钮并点击设备返回按钮时,应用程序崩溃,异常如下: -
The parameter is incorrect.
at MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData)
at MS.Internal.XcpImports.MethodPack(IntPtr objectPtr, String methodName, Object[] rawData)
at MS.Internal.XcpImports.UIElement_TransformToVisual(UIElement element, UIElement visual)
at System.Windows.Controls.SipHelper.AdjustFrame(FrameworkElement element, Double bottomMargin, Double& stillObscured)
at System.Windows.Controls.SipHelper.SelectionChanged(Object sender, RoutedEventArgs e)
at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)
Run Code Online (Sandbox Code Playgroud)
我无法理解生成异常的位置.
谢谢,金谷
我创建了一个针对两个框架(.net core 2.2 和 .net core 3.0)并使用目标框架符号(NETCOREAPP2_2 和 NETCOREAPP3_0)的小型应用程序。
项目文件非常简单,如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netcoreapp3.0;netcoreapp2.2</TargetFrameworks>
<OutputType>Exe</OutputType>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
程序代码可能再简单不过了:
public class MyClass
{
static void Main()
{
#if NETCOREAPP3_0
System.Console.WriteLine("Target framework: NETCOREAPP3_0");
#elif NETCOREAPP2_2
System.Console.WriteLine("Target framework: NETCOREAPP2_2");
#else
System.Console.WriteLine("Target framework: WHO KNOWS?!");
#endif
#if TEST_RUN
System.Console.WriteLine("Test mode active!");
#endif
}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用常规命令而不带附加参数构建它dotnet build --no-incremental,则两个版本都会创建并按预期工作:
PS>> dotnet .\bin\Debug\netcoreapp2.2\TargetFramework.dll
Target framework: NETCOREAPP2_2
PS>> dotnet .\bin\Debug\netcoreapp3.0\TargetFramework.dll
Target framework: NETCOREAPP3_0
Run Code Online (Sandbox Code Playgroud)
在我的场景中,我需要使用附加编译符号构建两个版本TEST_RUN。所以我在构建命令中添加了额外的参数dotnet build --no-incremental -p:DefineConstants=TEST_RUN。结果我有一个应用程序,但不知道目标框架:
PS>> dotnet .\bin\Debug\netcoreapp2.2\TargetFramework.dll
Target framework: …Run Code Online (Sandbox Code Playgroud) 我有一个关于ADS中存储过程性能的问题.我创建了一个具有以下结构的简单数据库:
CREATE TABLE MainTable
(
Id INTEGER PRIMARY KEY,
Name VARCHAR(50),
Value INTEGER
);
CREATE UNIQUE INDEX MainTableName_UIX ON MainTable ( Name );
CREATE TABLE SubTable
(
Id INTEGER PRIMARY KEY,
MainId INTEGER,
Name VARCHAR(50),
Value INTEGER
);
CREATE INDEX SubTableMainId_UIX ON SubTable ( MainId );
CREATE UNIQUE INDEX SubTableName_UIX ON SubTable ( Name );
CREATE PROCEDURE CreateItems
(
MainName VARCHAR ( 20 ),
SubName VARCHAR ( 20 ),
MainValue INTEGER,
SubValue INTEGER,
MainId INTEGER OUTPUT,
SubId INTEGER OUTPUT
) …Run Code Online (Sandbox Code Playgroud) 我有一些Key和Initial Vector,我在.NET应用程序中用于加密.让我们说它们是:
Key = 0x0102030405060708090A0B0C0D0E
IV = 0xA1A2A3A4A5A6A7A8A9AAABACADAE
Run Code Online (Sandbox Code Playgroud)
在某些情况下,我想在SQL Server上执行加密(不在应用程序中),但在应用程序中解密数据.我以为我可以在数据库中创建临时对称密钥并执行加密:
CREATE SYMMETRIC KEY #TempKey
WITH ALGORITHM = AES_128
, IDENTITY_VALUE = ???
, KEY_SOURCE = ???
ENCRYPTION BY PASSWORD = 'Pa$$w0rd';
OPEN SYMMETRIC KEY #TempKey
DECRYPTION BY PASSWORD = 'Pa$$w0rd';
SELECT EncryptByKey(Key_Guid('#TempKey'), 'Secret Data');
CLOSE SYMMETRIC KEY #TempKey;
DROP SYMMETRIC KEY #TempKey;
Run Code Online (Sandbox Code Playgroud)
但我不知道我应该提供什么作为IDENTITY_VALUE和KEY_SOURCE在DB和我的应用程序之间有一个"共享"键.
更新2014-07-07
我想提供一些问题的背景知识.
首先,我正在使用EF Code First方法,当我需要执行一些数据库更新时,我使用Code First Migrations,我想进一步使用这种基于纯迁移的方法.不幸的是,正如在EF Code First迁移中使用自定义逻辑的问题中找到的那样,无法在Up或Down方法中获取当前的SqlConnection和SqlTransaction .我唯一的方法 - 使用Sql方法执行自定义SQL查询.
在下一个数据库更新中,我想要在一列中加密数据.加密应该满足两个条件:(1)数据应该在客户端应用程序中解密(不在SQL Server端),(2)对称密钥应该以加密形式存储在客户端应用程序中,描述应该是使用密钥容器中的非对称密钥完成.不幸的是,这使得CRL UDF在这里无用 - 当我尝试在UDF中获取基于密钥容器的密钥时,我得到一个权限异常: …
有时我允许使用原始数据创建/更新物联网设备的状态。这意味着客户端可以将设备设备状态作为字节数组读取并通过 API 发送该数据。服务器解析的数据并作为常规 DTO 发回。
对于创建,我可能会引入以下CreateStatusFromRawData方法:
[HttpGet("{id}/status")]
[ProducesResponseType(200, Type = typeof(DeviceStatus))]
[ProducesResponseType(404)]
public async Task<IActionResult> GetStatus(Guid id)
{
// gets the device status
}
[HttpPost("{id}/status/rawdata")]
[ProducesResponseType(201, Type = typeof(DeviceStatus))]
[ProducesResponseType(404)]
public async Task<IActionResult> CreateStatusFromRawData(Guid id, [FromBody]byte[] rawdata)
{
// some parsing logic
return CreatedAtAction(nameof(GetStatus), new {id})
}
Run Code Online (Sandbox Code Playgroud)
我想为更新操作做同样的事情:
[HttpPut("{id}/status/rawdata")]
[ProducesResponseType(200, Type = typeof(DeviceStatus))]
[ProducesResponseType(404)]
public async Task<IActionResult> UpdateStatusFromRawData(Guid id, [FromBody]byte[] rawdata)
{
// some parsing logic
return **UpdatedAtAction**(nameof(GetStatus), new {id})
}
Run Code Online (Sandbox Code Playgroud)
UpdatedAtAction 方法的实现会是什么样子?所以我实际上想要三件事:
从IsolatedStorageSettings.Save方法页面的备注部分:
当关闭使用该类的应用程序时,将保存写入IsolatedStorageSettings对象的数据.当用户关闭Web浏览器,刷新页面或浏览页面时,可能会发生这种情况.如果您希望应用程序立即写入隔离存储,则可以在应用程序代码中调用Save方法.
所以,我永远不能打电话给这个Save方法,每个设置都是安全的.我只是好奇我应该使用哪种用法Save?
我正在尝试使用 crates prost 和 tonic 在 Rust 中构建一个简单的 gRPC 客户端。我的 proto 定义非常简单,但我突然坚持使用从其他 proto 导入的消息。
// file src/protos/types.proto
syntax = "proto3";
package Types;
message Message1 {
uint32 value1 = 1;
bytes value2 = 2;
}
message Message2 {
uint32 value1 = 1;
uint32 value2 = 2;
uint32 value3 = 3;
uint32 value4 = 4;
}
Run Code Online (Sandbox Code Playgroud)
// file src/protos/service.proto
syntax = "proto3";
import "types.proto";
package Service;
service Worker {
rpc Do (Request) returns (Reply);
}
message Request {
Types.Message1 message1 = 1; …Run Code Online (Sandbox Code Playgroud) 我正在使用 ADS v10 测试版。我正在尝试计算有序结果集。
1) ORDER BY 在嵌套查询中。我需要使用嵌套的 SELECT 进行一些计算:
SELECT Name, Value, ROWNUM() FROM (SELECT * FROM MainTable WHERE Value > 0 ORDER BY Value) a
Run Code Online (Sandbox Code Playgroud)
我得到
未找到预期的词法元素:) 解析表格时出现问题 在您的 FROM 关键字之后的名称 SELECT 语句。
删除 ORDER BY 后,一切正常。虽然,我在帮助中找到了示例,但它看起来像我的查询(确实更复杂):
SELECT * FROM (SELECT TOP 10 empid, fullname FROM branch1 ORDER BY empid) a UNION SELECT empid, fullname FROM branch2 ORDER BY empid
Run Code Online (Sandbox Code Playgroud)
2) ORDER BY+ ROWNUM()。我在上面的例子中使用了嵌套查询来计算有序的行。有没有机会避免嵌套查询?在 SQL Server 中,我可以执行以下操作:
SELECT Name, Value, ROW_NUMBER() OVER(ORDER BY Value) FROM MainTable …Run Code Online (Sandbox Code Playgroud) 我想点击按钮时将光标移到文本框中.我怎样才能做到这一点?我尝试了Focus()方法,但它没有用.代码如下所示.
CsNIPAddrTextBox.Focus();
CsNIPAddrTextBox.TabIndex = 1;
Run Code Online (Sandbox Code Playgroud) 我想在Windows RT应用程序中使用Anonymous Pro字体.我试图按照这个帖子的步骤,但没有任何成功.
这是我的尝试:
<TextBlock Text="{Binding Title}" HorizontalAlignment="Center" FontSize="56"
FontFamily="/Assets/Fonts/Anonymous Pro.ttf"
/>
Run Code Online (Sandbox Code Playgroud)
而不是匿名专业版使用默认字体.实际上,它是指定字体系列的示例(参见链接),但我不确定:我应该这样做还是不应该这样做.如果我应该,哪个家庭应该在那里?
那么如何在Windows RT应用程序中嵌入自定义字体并从那里使用呢?
我有一节课,比方说A.我需要声明一个可以访问的prototype属性,如下所示:
var idKey = A.prototype.attributeId;
Run Code Online (Sandbox Code Playgroud)
我可以使用以下代码执行此操作:
class A {
constructor() {
A.prototype.attributeId = "InternalId";
}
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
c# ×5
.net ×3
.net-core ×1
aes ×1
back ×1
cursor ×1
dotnet-cli ×1
encryption ×1
exception ×1
grpc ×1
msbuild ×1
prost ×1
proto ×1
rest ×1
rust ×1
select ×1
sql-order-by ×1
sql-server ×1
tonic ×1
typescript ×1
windows-8 ×1
winforms ×1