小编Use*_*rol的帖子

DataContractSerializer,KnownType和继承

我读过很多关于已知类型的文章,我相信我的例子应该有用.但事实并非如此.我在反序列化时遇到以下异常,并且不明白为什么:

第1行位置出错2.期望命名空间' http://schemas.datacontract.org/2004/07/ConsoleApplication2 '中的元素'A' .遇到名为'C'的'Element',命名空间' http:// schemas .datacontract.org/2004/07/ConsoleApplication2 '.

using System;
using System.Runtime.Serialization;
using System.Xml;
using System.IO;

namespace ConsoleApplication2
{
    [DataContract][KnownType(typeof(C))]class A { }
    [DataContract]class C : A { }

    class Program
    {
        static void Main(string[] args)
        {
            A a = new C();
            string data;

            var serializer = new DataContractSerializer(a.GetType());
            using (var sw = new StringWriter())
            {
                using (var xw = new XmlTextWriter(sw))
                    serializer.WriteObject(xw, a);
                data = sw.ToString();
            }

            serializer = new DataContractSerializer(typeof(A));
            using (var sr = new StringReader(data))
            using …
Run Code Online (Sandbox Code Playgroud)

.net serialization datacontractserializer known-types

8
推荐指数
1
解决办法
5294
查看次数

C#运算符作为函数

有没有办法将运算符用作函数而无需手动声明它们?

Func<bool, bool> not = x => !x;
Run Code Online (Sandbox Code Playgroud)

与Haskell中的(+)/ 类似(-).在涉及条件查询构造的各种LINQ场景中会很方便.也许一些我不知道的C#(4.0+)技巧.

编辑:这是一个澄清我的意思的样本:

 int MyWhere(Func<bool, bool, bool> cond) {}
Run Code Online (Sandbox Code Playgroud)

通常的电话会是:

MyWhere((x,y) => x && y)
Run Code Online (Sandbox Code Playgroud)

一个很酷的电话会是(假设Haskell风格):

MyWhere((&&))
Run Code Online (Sandbox Code Playgroud)

c# functional-programming c#-4.0

8
推荐指数
2
解决办法
1695
查看次数

使用Linq-2-Sql时,System.Transactions会发出警告

我启用了System.Transactions日志记录:

<system.diagnostics>
    <sources>
        <source name="System.Transactions" switchValue="Warning">
            -- my listeners here
        </source>
    </sources>
</system.diagnostics>
Run Code Online (Sandbox Code Playgroud)

并看到很多奇怪的日志警告,如:

  • Transaction.Rollback被调用
  • 征兵回调否定
  • TransactionScope不完整

可以请有人对此有所了解吗?我的系统按预期工作,并且没有引发ADO.NET级异常.DAL代码是典型的L2S代码,没有明确的事务管理或任何黑客攻击.

.net sql-server logging diagnostics linq-to-sql

8
推荐指数
1
解决办法
390
查看次数

替代xUnit GUI运行器

与NUnit相比,xUnit提供了许多吸引人的功能,但它的GUI运行器非常糟糕,使用起来很痛苦:没有树形可视化,理论测试由单个列表条目表示,不记得上次测试运行等等.我希望很长一段时间2.0将解决它,但它仍然在alpha :(我在VS 2010上,因此无法尝试VS 2012的新测试浏览器并寻找替代方案.那么你用什么来运行xUnit测试?

.net unit-testing xunit xunit.net

8
推荐指数
1
解决办法
3677
查看次数

媒体查询全屏

我使用以下媒体查询在全屏模式下应用我的CSS覆盖:

@media (device-width: 100vw) and (device-height: 100vh) {
  .content {
    padding: 0px !important;
  }
}
Run Code Online (Sandbox Code Playgroud)

在Firefox中完美运行但在Chrome中非常不可靠(在Windows 7 x64上都是最新版本).我可以尝试仅在不是全屏模式时应用我的覆盖,但需要反转查询.所以我的问题是:

  1. Chrome应该支持查询吗?
  2. 我如何否定它(逻辑上没有)?

PS

viewport的声明是这样的:

<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
Run Code Online (Sandbox Code Playgroud)

css google-chrome fullscreen css3 media-queries

8
推荐指数
2
解决办法
4468
查看次数

无法加载类型'Microsoft.Cct.Services.Sqm.IWatSqmService'

从Visual Studio 2015发布我的云服务时出现此错误:

10:11:26 AM - Instance 0 of role MySite is ready
10:11:26 AM - Instance 1 of role MySite is ready
10:11:27 AM - Starting...
10:11:45 AM - Initializing...
10:11:46 AM - Created web app URL: http://mysite.cloudapp.net/
10:11:46 AM - Complete.
10:11:46 AM - Could not load type 'Microsoft.Cct.Services.Sqm.IWatSqmService' from assembly 'Microsoft.VisualStudio.WindowsAzure.Services, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
Run Code Online (Sandbox Code Playgroud)

这在部署结束时发生,并且该站点似乎已部署,但Visual Studio仍然表示部署失败.我该如何解决这个问题?

.net deployment azure visual-studio-2015

8
推荐指数
2
解决办法
3303
查看次数

Git rebase local vs git pull --rebase origin

我有一个本地(从不推送到远程)功能分支F1master制作,并进行了几次提交。我似乎不明白这两个操作之间的区别(F1是当前分支):

git fetch origin
git rebase master
Run Code Online (Sandbox Code Playgroud)

git pull --rebase origin master
Run Code Online (Sandbox Code Playgroud)

我的期望是它们应该是等效的,但它们不是 - 产生了不同的结果。

我的想法有什么问题?

git version-control git-rebase branching-and-merging

8
推荐指数
1
解决办法
6845
查看次数

C# 没有命名空间的类的公共成员可见性

我有一个项目,在本地源中作为MyNuget包发布。该项目引用了一个ThirdPartyNuget,它具有ThirdPartyExtensions公共静态类和公共扩展方法IQueryable

现在,在我的主要解决方案中,我引用MyNuget并且不引用ThirdPartyNuget。尽管如此,Visual Studio 2022 仍显示了ThirdPartyExtensions. 为什么?

我不希望出现这种情况,因为我认为ThirdPartyNuget是MyNuget的实现细节。

ThirdPartyNuget中的程序集被混淆了,并且ThirdPartyExtensions类看起来很奇怪,因为它没有命名空间。这是我在调试器中看到的内容:

typeof(ThirdPartyExtensions).Name == typeof(ThirdPartyExtensions).FullName == "ThirdPartyExtensions"
typeof(ThirdPartyExtensions).Namespace == null
typeof(ThirdPartyExtensions).GUID == {00000000-0000-0000-0000-000000000000}
Run Code Online (Sandbox Code Playgroud)

这种行为的机制是什么?

如何隐藏ThirdPartyExtensions 主解决方案中的可见性?

.net c# dependencies visibility namespaces

8
推荐指数
2
解决办法
618
查看次数

删除Oracle中的用户级联

我需要能够从批处理中删除特定用户(可能有活动会话)而无需任何用户交互.我不关心活动会话,并希望将它们删除并回滚.对于Microsoft SQL,我将使用一行执行类似的任务:

osql -E -S localhost -b -Q "use master if ((select name from sysdatabases where name='%DB%') is not null) begin alter database [%DB%] set single_user with rollback immediate drop database [%DB%] end"
Run Code Online (Sandbox Code Playgroud)

我如何为Oracle(Windows上的10g XE)做到这一点?

我目前的批次是:

sqlplus sys/*** as SYSDBA  @delete1.sql >delete.log
sqlplus sys/***@XE as SYSDBA  @delete2.sql >>delete.log
Run Code Online (Sandbox Code Playgroud)

其中delete1.sql:

startup force;
exit;
Run Code Online (Sandbox Code Playgroud)

和delete2.sql:

drop user MYUSER cascade;
exit;
Run Code Online (Sandbox Code Playgroud)

与MSSQL解决方案的瞬间相比,这很难看,并且耗时太长.

oracle maintenance

7
推荐指数
1
解决办法
1万
查看次数

函数语言中的并行性

广告中提到的F​​P功能之一是程序"默认并行",并且自然适合现代多核处理器.实际上,减少树的性质是平行的.但是,我不明白它如何映射到多线程.考虑以下片段(伪代码):

let y = read-and-parse-a-number-from-console
let x = get-integer-from-web-service-call
let r = 5 * x - y * 4
write-r-to-file
Run Code Online (Sandbox Code Playgroud)

翻译器如何确定哪个树分支应该在一个线程上运行?在你获得x或者在单独的线程上y减少5 * xy * 4表达式是愚蠢的(即使我们从线程池中获取它),不是吗?那么不同的功能语言如何处理呢?

parallel-processing multithreading functional-programming lang

7
推荐指数
1
解决办法
2373
查看次数