小编Ber*_*ard的帖子

使用OpenSSL进行Base64编码和解码

我一直在试图找出base64解码和编码的openssl文档.我在下面找到了一些代码片段

#include <openssl/sha.h>
#include <openssl/hmac.h>
#include <openssl/evp.h>
#include <openssl/bio.h>
#include <openssl/buffer.h>

char *base64(const unsigned char *input, int length)
{
  BIO *bmem, *b64;
  BUF_MEM *bptr;

  b64 = BIO_new(BIO_f_base64());
  bmem = BIO_new(BIO_s_mem());
  b64 = BIO_push(b64, bmem);
  BIO_write(b64, input, length);
  BIO_flush(b64);
  BIO_get_mem_ptr(b64, &bptr);

  char *buff = (char *)malloc(bptr->length);
  memcpy(buff, bptr->data, bptr->length-1);
  buff[bptr->length-1] = 0;

  BIO_free_all(b64);

  return buff;
}

char *decode64(unsigned char *input, int length)
{
  BIO *b64, *bmem;

  char *buffer = (char *)malloc(length);
  memset(buffer, 0, length);

  b64 = BIO_new(BIO_f_base64());
  bmem = BIO_new_mem_buf(input, length); …
Run Code Online (Sandbox Code Playgroud)

c++ base64 openssl

20
推荐指数
6
解决办法
5万
查看次数

使用表达式树的Foreach循环

在构建动态表达式树表达式/语句树看到了这个问题,因为我是表达树的新手,我仍然在努力去理解如何实现我想要的东西.

一个人为的目标如下

    public class TestObject
    {
        public TestObject()
        {
            ClassList = new List<Class>();
        }
        public int Age { get; set; }
        public List<Class> ClassList { get; set; } 
    }

    public class Class
    {
        public string Name { get; set; }
        public int ClassId { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

在运行时,我遍历每个属性并生成一个Delegate,它转换为该属性的字符串.我已经完成了所有工作.我现在要处理的问题是,对于List类型,我需要能够对ClassList属性中的每个项应用一组动作,所以我需要一个foreach来允许我这样做.

我现在有这个

//type==TestObject at runtime
//propertyName == "ClassList"
   ParameterExpression recordExpression = Expression.Parameter(type, "record");

   memberExpression = MemberExpression.Property(recordExpression, propertyName);

   Type getEnumerableDelegateType =
                typeof(Func<,>).MakeGenericType(new Type[] { type, memberExpression.Type}); …
Run Code Online (Sandbox Code Playgroud)

.net c# lambda expression-trees

9
推荐指数
2
解决办法
7062
查看次数

Nuget 使用 teamcity 更新到最新版本

我们的构建混合使用内部生成的 nuget 包和外部第三方包。所有包配置都设置了 allowedVersions="[1,3)" 以允许根据https://docs.nuget.org/create/versioning更新到最新版本。

我们还使用此处描述的 nuget 恢复步骤https://confluence.jetbrains.com/display/TCD9/NuGet+Installer但我们无法将其更新到最新版本的 nuget 软件包。

为了进行测试,我们删除了packages.config中预期的包版本,并保留了后续版本。这应该会导致 nuget 恢复步骤发现当前版本不可用并更新到最新版本。相反,该步骤会失败,并无法恢复 packages.config 文件中的特定版本。

如果我们在 Visual Studio 本地运行更新包命令,安装将按预期进行,我们缺少什么?

teamcity nuget nuget-package teamcity-9.0

6
推荐指数
0
解决办法
1714
查看次数

INotifyPropertyChanged以C#.Net 3.0为目标

我一直在努力使用mvp在C#中连接一些winforms.UI开发并不完全是我强大的套件,我正在寻找一种实现INotifyPropertyChanged的重构验证方法,而不必求助于字符串来触发更改通知.

MSDN的例子http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx大多数我见过的其他罢工我走错路了与问候到这样做至少所有的事实上,如果您重构属性,必须更改字符串.

所有我看到的计算器使用表达式和FUNC其他选项,遗憾的是在传统的解决方案,我很支持,所以我想知道如果任何人有办法复制使用表达式树来获得属性名称的当前的解决方案没有可用的设备.

我见过的解决方案的一个例子.

public static string GetPropertyName<T, TReturn>(Expression<Func<T, TReturn>>      expression) 
{
 MemberExpression body = (MemberExpression)expression.Body; return body.Member.Name; 
}
Run Code Online (Sandbox Code Playgroud)

干杯

.net c# inotifypropertychanged

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