我将project.json/ .xprojproject 迁移到较新的CS2017 .csproj格式.
该项目包含一个T4(.tt)模板文件.
它不会在保存或构建时重新生成其输出.输出.cs文件也没有嵌套在.tt文件下面.
为了让这个工作,我有什么必须做的吗?
以下是我使用RNCryptor加密/解密我发送给Web服务的JSON字符串的方法.我使用静态IV变量可能是不好的做法,但请不要专注于此.我是这样做的:
注:我使用发现马特加拉格尔的NSData的+ Base64编码类别这里(在页面底部)
-(NSString*)encryptString:(NSString*)plaintext withKey:(NSString*)key error:(NSError**)error{
NSData *data = [plaintext dataUsingEncoding:NSUTF8StringEncoding];
NSData *encryptionKey = [NSData dataFromBase64String:key];
NSData *IV = [NSData dataFromBase64String:ENCRYPTION_IV];
RNCryptorEngine *engine = [[RNCryptorEngine alloc] initWithOperation:kCCEncrypt settings:kRNCryptorAES256Settings key:encryptionKey IV:IV error:error];
[engine addData:data error:error];
NSData *encryptedData = [engine finishWithError:error];
NSString *based64Encrypted = [encryptedData base64EncodedString];
NSLog(@"Encrytped: %@", based64Encrypted);
return based64Encrypted;
}
-(NSString*) decryptString:(NSString*)cipherText withKey:(NSString*)key error:(NSError**)error;{
NSData *data = [NSData dataFromBase64String:cipherText];
NSData *encryptionKey = [NSData dataFromBase64String:key];
NSData *IV = [NSData dataFromBase64String:ENCRYPTION_IV];
RNCryptorEngine *engine = [[RNCryptorEngine alloc] initWithOperation:kCCDecrypt settings:kRNCryptorAES256Settings key:encryptionKey IV:IV …Run Code Online (Sandbox Code Playgroud) 我有字节数组作为输入.我想将该数组转换为包含数组值的十六进制表示的字符串.这是F#代码:
let ByteToHex bytes =
bytes
|> Array.map (fun (x : byte) -> String.Format("{0:X2}", x))
let ConcatArray stringArray = String.Join(null, (ByteToHex stringArray))
Run Code Online (Sandbox Code Playgroud)
这产生了我需要的结果,但我想使它更紧凑,因此我只有一个功能.我找不到在ByteToHex结尾处连接每个字节的字符串表示的函数.
我尝试了Array.concat,concat_map,我尝试了列表,但我能得到的最好的是数组或字符串列表.
问题:
示例输入:[| 0x24uy; 0xA1uy; 0x00uy; 0x1Cuy |]应该产生字符串"24A1001C"
有人知道是否可以通过索引器使用动态lang功能在CLR对象上调用方法?例如, myClrObj["SuperMethod"] () 我可以在javascript中轻松完成.
预先感谢.
因此,在没有任何平台特定代码的情况下测试可移植类库时,是否只能从配置文件中测试其中一个平台(.net 4.5)?我的直觉说不,但我已经读过一些其他的说法.
如果你确实需要对每个平台进行测试,那么.net中的任何一个测试框架都有一个PCL测试库,每个或大多数平台都有一个运行器,所以只需要一个单元测试的DLL吗?
我有一些代码可以与由数据库调用填充的 ExpandoObjects 一起使用。总是有些值是空值。当我将对象视为 ExpandoObject 时,我会看到底层字典中的所有键和值(包括空值)。但是,如果我尝试通过动态引用访问它们,则任何具有相应空值的键都不会显示在对象的动态视图中。当我尝试通过动态引用上的属性语法访问它时,我得到一个 ArgumentNullException。
我知道我可以通过直接使用 ExpandoObject、添加一堆尝试捕获、将 expando 映射到具体类型等来解决这个问题,但这首先违背了拥有这个动态对象的目的。如果某些属性具有空值,则使用动态对象的代码将正常工作。是否有更优雅或更简洁的方式来“取消隐藏”这些具有空值的动态属性?
这是演示我的“问题”的代码
dynamic dynamicRef = new ExpandoObject();
ExpandoObject expandoRef = dynamicRef;
dynamicRef.SimpleProperty = "SomeString";
dynamicRef.NulledProperty = null;
string someString1 = string.Format("{0}", dynamicRef.SimpleProperty);
// My bad; this throws because the value is actually null, not because it isn't
// present. Set a breakppoint and look at the quickwatch on the dynamicRef vs.
// the expandoRef to see why I let myself be led astray. NulledProperty does not
// show up in the …Run Code Online (Sandbox Code Playgroud) 当尝试构建面向 net47 而不是 .netcore 或 .net std 的 Microsoft.NET.Sdk 样式项目时。将dotnet build给出有关缺少目标包的错误。msbuild 可以代替,但我更喜欢使用dotnet build. 有办法吗。
/usr/local/share/dotnet/sdk/2.1.200/Microsoft.Common.CurrentVersion.targets
(1179,5): error MSB3644: The reference assemblies for framework
".NETFramework,Version=v4.7" were not found. To resolve this, install the
SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or
Targeting Pack installed. Note that assemblies will be resolved from the
Global Assembly Cache (GAC) and will be used …Run Code Online (Sandbox Code Playgroud) 移植到.NET标准版本,您可能与可移植库相同,但支持的平台可能不是.
例如,.NET standard 1.6可能是最便宜的api可用的最低版本Profile47.Profile47支持.net 4.5或更高版本,nut .NET Standard 1.6仅支持4.6.1及更高版本!
使用新的msbuild 15 csproj/fsproj (也是VS2017)进行新的多目标定位是否可以同时编译可移植库和.Net标准以使转换更容易?
这非常令人沮丧,我有一个可移植类库(PCL)库,它必须在配置文件中删除.NET 4.0才能访问正确的API"在PCL中".但是,这些API确实存在于.NET 4.0中,因此如果完全相同的代码在.NET 4.0项目中,则编译就可以了.
我想要一个最小的持续维护方法来重新编译这个PCL项目中的代码到.net 4.0,所以我可以将它包含在Nuget包中.
我有一个asp.net mvc项目,我想在我的gulp文件中使用浏览器同步来自动注入css更改并在我对网站进行更改时重新加载页面.我之前已经在proxy模式下完成了这个,但是这个站点使用了无法代理的Windows身份验证(NTLM).有没有办法使浏览器同步工作?
在使用内存映射文件尽可能快地在.net中IOException读取文件流时,由于两个读取同一文件的进程锁定了文件,因此我遇到了s 的问题。
有几种用于生成内存映射文件的工厂方法,如何允许共享readonly访问?
c# ×5
.net ×3
f# ×2
.net-4.0 ×1
browser-sync ×1
csproj ×1
dotnet-cli ×1
dynamic ×1
encoding ×1
encryption ×1
ios ×1
linux ×1
macos ×1
msbuild ×1
msbuild-15 ×1
rncryptor ×1
t4 ×1
unit-testing ×1