我有两个数据源,一个Oracle和一个Sql Server.由于我之前的情况(就像我发现它时的情况一样),Oracle数据库中的某些列包含来自Sql Server数据库中查找表的PK.
我正在尝试创建一个Sql Server Reporting Services报告,该报告将合并来自Oracle和Sql Server数据库的数据; 要报告的数据部分来自Oracle,但需要在Sql Server中查找某些值.
我有数据源.我有DataSet.我只是无法弄清楚如何在同一个表格报告中显示两个数据集.
这可能吗?如果是这样怎么回事?我宁愿不在一个或其他数据库中使用数据库链接,因为我想在报告方面处理这个问题.
我有一个泛型方法TResult Foo<TSource, TResult>(IEnumerable<TSource> source)
,如果TResult
声明dynamic
我想执行一个不同的代码路径而不是其他类型的声明.
对于常规类型,您可以执行以下操作:
if (typeof(TResult) == typeof(int))
return ExpressionFactory.CreateExpandoFunction<TSource, TResult>();
Run Code Online (Sandbox Code Playgroud)
但是if (typeof(TResult) == typeof(dynamic))
没有编译.
无论如何,在使用声明调用方法时,在运行时进行此类确定:
dyanmic x = Foo<int, dynamic>(list);
Run Code Online (Sandbox Code Playgroud)
由于动态本身不是一种类型,我应该测试什么?IDynamicMetaObjectProvider
?
编辑
这是System.Linq.Expression评估程序的SQL文本的一部分.分支if的特定愿望TResult
是动态的是某些伪逻辑看起来像这样:
if (type is struct)
create selector that initializes each element to result values
else if (type is class)
create selector that initialize each element to new instance and set member properties
else if (type is dynamic)
create selector that initializes each element to …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用MVC5项目中的Microsoft.Owin.Security.Google获取Google帐户的刷新令牌.要从google服务器获取resposne中的RefreshToken,我需要设置access_type = offline
.但我找不到任何合适的属性GoogleOAuth2AuthenticationOptions
.
用于允许身份验证的代码
var gao = new GoogleOAuth2AuthenticationOptions
{
ClientId = ConfigurationManager.AppSettings.Get("GoogleClientId"),
ClientSecret = ConfigurationManager.AppSettings.Get("GoogleClientSecret"),
Provider = new GoogleOAuth2AuthenticationProvider
{
OnAuthenticated = async ctx =>
{
var refreshToken = ctx.RefreshToken;
//ctx.Identity.AddClaim(new Claim("refresh_token", refreshToken));
}
}
};
gao.Scope.Add(TasksService.Scope.Tasks);
gao.Scope.Add("openid");
app.UseGoogleAuthentication(gao);
Run Code Online (Sandbox Code Playgroud) 在 VSCode 的 1.17.2 版(安装了 C# 扩展)中,我通过将一个 MSTest 项目添加到解决方案文件夹中,dotnet new mstest
并添加了对正在使用dotnet add <project_path>
.
鉴于下面的两个 VSCode 任务,我可以成功构建和运行测试;即一切构建,单元测试运行并通过。
{
"version": "2.0.0",
"tasks": [
{
"taskName": "build",
"command": "dotnet build src/tests/tests.csproj",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$msCompile"
},
{
"taskName": "test",
"command": "dotnet test src/tests/tests.csproj",
"type": "shell",
"group": {
"kind": "test",
"isDefault": true
},
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$msCompile"
}
]
}
Run Code Online (Sandbox Code Playgroud)
但是,我无法使用集成调试器点击断点或以其他方式单步执行单元测试。我提出的最接近的启动配置将运行测试,但调试器不会命中断点或附加到任何内容。
{
"name": "test",
"type": …
Run Code Online (Sandbox Code Playgroud) 我正在移植一些使用RESTful服务的紧凑框架代码到Windows Phone 7. REST服务需要md5散列和方法签名.
此代码(在NETCF上工作)不再编译,我在对象浏览器中看不到任何与MD5相关的内容.
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
buffer = md5.ComputeHash(buffer);
Run Code Online (Sandbox Code Playgroud)
WP7不支持md5吗?
我正在使用通用Windows程序集,并且无法在同一解决方案中从C#控制台应用程序项目添加对它的引用.控制台应用程序将是一个简单的测试床应用程序,用于交互式使用通用DLL.
通用Windows程序集不适用于直接的控制台应用程序吗?当我尝试添加对通用项目的引用时,VS.NET显示了一个非常无法提供的"无法添加对项目的引用"消息.
我有一些代码,作为一个轻量级,无阻塞,关键部分.我希望无论在子句_func
和子句中发生什么,都保证继续运行,使得其块中的语句将始终执行.cancellationToken
Task.Run
Exit
finally
是否可以安全地假设下面的finally块,在此过程中没有灾难性故障,将以与最终正常运行的大致相同的保证执行?
if (Enter())
{
Task.Run<T>(_func, cancellationToken)
.ContinueWith((antecedent) =>
{
try
{
antecedent.Wait(cancellationToken);
Interlocked.Exchange<T>(ref _result, antecedent.Result);
}
catch (AggregateException e)
{
Interlocked.Exchange(ref _exceptions, e);
}
catch (OperationCanceledException)
{
ResetState();
}
catch (Exception e)
{
Interlocked.Exchange(ref _exceptions, new AggregateException(e));
}
finally
{
Exit();
}
})
}
Run Code Online (Sandbox Code Playgroud) 所以,我们都知道,C#没有一个类似C的宏预处理器(和有一个很好的线程为什么在这里).但是现在AOP正在获得牵引力,似乎我们开始使用后处理器(我们曾经使用过预处理器)做的事情(请记住,我只是在使用PostSharp,所以可能不在).
我是C#中属性的忠实粉丝,但是如果一个预处理器被遗漏了很多原因(作为一个前MFC用户,我仍然质疑但仍接受)为什么编译后代码注入比预先更好编译代码注入?
我正在开发一款可以使用OAuth2进行身份验证的移动应用.
它工作得很好但是当我导航到批准Uri时,谷歌正在返回看起来像一个完整的桌面应用程序批准页面.它看起来并不太糟糕,但我更愿意获得你可以要求Google的OAuth 1显示的精简版移动版本.
(来自http://code.google.com/apis/accounts/docs/OAuth_ref.html)
btmpl
(optional) Forces a mobile version of the approval page. The only accepted value is "mobile". This is a Google-specific parameter.
Run Code Online (Sandbox Code Playgroud)
我已经尝试将其添加到OAuth2批准Uri但不高兴.因此,如果我使用Google安装的应用程序身份验证流程,是否有任何选项可以指示请求来自小屏幕设备?
我正在使用的oauth端点:
https://accounts.google.com/o/oauth2/auth?response_type=code&redirect_uri=http://localhost&scope=https://www.googleapis.com/auth/userinfo.profile&client_id=XXXXXXX.apps.googleusercontent.com
Run Code Online (Sandbox Code Playgroud) 我正在使用Json.Net将json结果反序列化为ExpandoObjects
使用如下代码:
var converter = new ExpandoObjectConverter();
dynamic d = JsonConvert.DeserializeObject<ExpandoObject>(json, converter);
Run Code Online (Sandbox Code Playgroud)
除了在json模式的根目录下只有一个列表的响应之外,这对所有事情都很有用,例如:
string json = @"[{""title"": ""the title""}]";
Run Code Online (Sandbox Code Playgroud)
在JsonConvert
这个方法的内容:
public static T DeserializeObject<T>(string value, params JsonConverter[] converters)
{
return (T)DeserializeObject(value, typeof(T), converters);
}
Run Code Online (Sandbox Code Playgroud)
返回值DeserializeObject
是在其中正确构造的List<object>
,ExpandoObject
但代码无法尝试将该列表强制转换为ExpandoObject本身(T的值).
我有一个失败的单元测试,可以解决这个问题,但我不确定如何List
直接填充ExpandoObject
.
这可能吗?DynamicObject
有TryGetIndex
这样我承担ExpandoObject
可以有一个索引.是否有必要通过动态提供索引方法的实现来仔细构建一个类似于列表的expando实例,或者创建一个非expando DynamicObject
来保存列表并从动态方法调用中调用正确的方法?