小编Rai*_*ine的帖子

动态对象序列化

我尝试DynamicObjectBinaryFormatter,但是:序列化一个类

  • 输出文件太大,不完全是对线路友好的
  • 循环引用未处理(序列化时卡住)

由于序列化一个单独的DynamicObject手段,这里是我尝试序列化的类:

[Serializable()]
class Entity
    : DynamicObject, ISerializable
{

    IDictionary<string, object> values = new Dictionary<string, object>();

    public Entity()
    {

    }

    protected Entity(SerializationInfo info, StreamingContext ctx)
    {
        string fieldName = string.Empty;
        object fieldValue = null;

        foreach (var field in info)
        {
            fieldName = field.Name;
            fieldValue = field.Value;

            if (string.IsNullOrWhiteSpace(fieldName))
                continue;

            if (fieldValue == null)
                continue;

            this.values.Add(fieldName, fieldValue);
        }

    }

    public override bool TryGetMember(GetMemberBinder binder, out object result)
    {
        this.values.TryGetValue(binder.Name, out result);

        return …
Run Code Online (Sandbox Code Playgroud)

c# serialization dynamic protobuf-net

22
推荐指数
2
解决办法
3万
查看次数

Lua在fslex中长串

我在业余时间一直在研究Lua fslex lexer,使用ocamllex手册作为参考.

我试图正确地标记长字符串时遇到了一些障碍."长串"由'[' ('=')* '['']' ('=')* ']'令牌分隔; =标志的数量必须相同.

在第一个实现中,词法分析器似乎无法识别[[模式,LBRACKET尽管匹配规则最长,但产生两个令牌,而[=[正确识别的变量则产生两个令牌.此外,正则表达式无法确保使用正确的结束标记']' ('=')* ']',无论实际的长字符串"级别"如何,都会在第一次捕获时停止.此外,fslex似乎不支持正则表达式中的"as"结构.


let lualongstring =    '[' ('=')* '[' ( escapeseq | [^ '\\' '[' ] )* ']' ('=')* ']'

(* ... *)
    | lualongstring    { (* ... *) }
    | '['              { LBRACKET }
    | ']'              { RBRACKET }
(* ... *)


我一直试图用词法分析器中的另一个规则来解决这个问题:


rule tokenize = parse
    (* ... *)
    | '[' ('=')* '['   { longstring (getLongStringLevel(lexeme …
Run Code Online (Sandbox Code Playgroud)

lua f# fslex ocamllex

6
推荐指数
1
解决办法
507
查看次数

构建实体表单URL

Microsoft CRM 2011的一个问题.给出以下参数:

如何构建一个url来指向该记录的主要(或"默认")形式?

我可以在表单urls中告诉一个模式,但是一些querystring params非常模糊,我不知道如何将它们重用于任何其他类型的实体.此外,版本4.0具有系统实体的特定URL(/ sfa /等).似乎不再是这种情况了.

任何帮助将不胜感激 - 谢谢.

(欢迎使用其他标签,我无法添加它们.)

dynamics-crm dynamics-crm-2011

6
推荐指数
1
解决办法
6510
查看次数

协程实现的CPS编译器

我以前在业余时间在IronLua工作.Lexing和解析目前已完成.由于在.NET中实现Lua协同程序而不采用脏的线程攻击并不容易,我有点因为沮丧而停止工作.这与编译Lua函数的方式有关,这是我在设计编译器时需要尽早解决的问题.

我一直在研究协程实现,结果证明我对连续性的初步感觉是正确的.

由于协程创建,yield和其他操作不是语言关键字,而是"coroutine"表中的函数,我不能静态切换到CPS样式的编译,因为协程表可能已被前一个脚本覆盖.虽然我知道覆盖coroutine表的脚本很少见,但我希望能够安全地尽可能干净地处理问题.

我的计划是对每个表达都使用延续传递样式,无论我们是否在协程中.一切都会延续下去.

除了首先编写编译器的明显困难,并在其上添加CPS转换之外,我对此设计决策及其性能影响感到不安.

我正在寻找有关.NET中Lua协程实现的建议.

谢谢你的时间.

.net compiler-construction continuations lua coroutine

6
推荐指数
1
解决办法
530
查看次数

在.NET Core中加载程序集

使用VS2017 RC,.NET Core

我正在尝试从文件加载程序集.此程序集的依赖项位于同一文件夹中.

我在用AssemblyLoadContext.Default.LoadFromAssemblyPath.

我意识到LoadFromAssemblyPath只加载请求的程序集,忽略它的依赖关系; 任何迭代装配类型的尝试都失败了System.Reflection.ReflectionTypeLoadException.

LoaderExceptions包含一个列表System.IO.FileNotFoundException.

我很好奇为什么会这样,因为所有必需的文件都在同一个文件夹中.

我还尝试将所有*.dll文件加载到一个文件夹中,但有些令人惊讶地失败了System.IO.FileLoadException.

我究竟做错了什么?

编辑:我不想依赖.deps文件(因此排除了DependencyContext).可能吗?

c# reflection .net-core

5
推荐指数
1
解决办法
4930
查看次数

在VS2010下编译Lua 5.2 alpha

我想在visual studio下编译Lua 5.2 alpha,但是我遇到了错误,我不知道如何修复它们.

error LNK1169: one or more multiply defined symbols found
error LNK2005: _main already defined in lua.obj
Run Code Online (Sandbox Code Playgroud)

如果有人能指导我为Lua 5.2 alpha创建VS2010解决方案,或者指向相关资源,我将不胜感激.

提前致谢.

lua visual-studio-2010

4
推荐指数
1
解决办法
3366
查看次数

服务器端Fetchxml返回不同的结果

我们的一个程序允许用户通过选择视图然后点击功能区按钮批量插入相关记录.保存表单,设置标志,然后插件完成其工作.

我们正在使用带有视图选择器的子网格,以便用户动态选择或创建自己的视图.选择视图后,将显示结果数(提供的值为lte 5k).

当插件运行fetchxml服务器端(检索userquery或savedquery,然后是Retrieve + FetchExpression)时,结果会发生变化.我们不仅获得不同数量的记录,而且还有一些记录不同.

我们的结论是,这个问题与时区有关.一些过滤器包括"on-or-after"运算符以及日期值.例:

<filter type="and">
  <condition attribute="modifiedon" operator="on-or-after" value="2011-01-01" />
  <condition attribute="modifiedon" operator="on-or-before" value="2011-12-31" />
</filter>
Run Code Online (Sandbox Code Playgroud)

该插件以管理员身份运行.更改插件用户无效 - 就像使用FetchExpression从CRM中提取记录时不考虑当前用户时区一样.

如何确保fetchxml表达式在客户端和服务器端返回相同的结果?

可能相关:MSDN线程.

谢谢你的时间.

编辑:按照Daryl的建议,我运行了一条SQL跟踪.结果令人费解.对于客户端查询,日期是正确偏移的(从CRM运行,即高级查找) - 这意味着fetchxml使用用户的时区设置正确转换.服务器端的同一查询不会发生这种情况; 输出SQL包含"原样"的日期过滤器,没有时区偏移量.无论查询执行上下文的来源如何,我都假设发生了相同的翻译.

编辑2:隐藏的代码区域(我的上一个调试手段)中的标志阻止插件在运行用户的上下文中实例化服务.一切都运行良好.感谢大家的时间和帮助,非常感谢.

plugins fetchxml dynamics-crm-2011

2
推荐指数
1
解决办法
2297
查看次数

依赖注入抽象库

有没有像 https://github.com/aspnet/DependencyInjection这样的旧.NET框架应用程序?

"包含ASP.NET Core和Entity Framework Core使用的常见DI抽象."

我正在编写一个框架,我不想强​​迫用户使用特定的IoC容器.

.net c# dependency-injection asp.net-core

2
推荐指数
1
解决办法
693
查看次数

RabbitMQ - 话题交换和竞争消费者

我成功设置了一个 Topic Exchange,并且能够一次向多个消费者发送消息。

我还想向竞争的消费者传递消息并继续使用主题交换。我读到使用相同的队列名称可以让消费者竞争消息。但是,我可能会弄错,因为我无法让它发挥作用。

为同一主题的多个侦听器设置:

  • 声明主题交换
  • 对于每个侦听器,声明一个具有自动生成名称的新队列
  • 使用给定的主题路由键将此队列绑定到上述交换

如何将竞争消费者设置为同一主题?

主题交换甚至可能吗?

谢谢。

.net c# rabbitmq

2
推荐指数
1
解决办法
3105
查看次数