在C#中,有没有办法在不调用其构造函数的情况下实例化类的实例?
假设该类是公共的,并在第三方库中定义,构造函数是内部的.我想这样做的原因很复杂,但知道是否有可能使用某种C#hackery会很有帮助.
注意:我特别不想调用任何构造函数,因此使用反射访问内部构造函数不是一个选项.
我有一个应用程序,它在c:\ Dev\MyApp\Main下受源代码管理(TFS 2012).
因为我正在开发一个新功能,所以我决定在c:\ Dev\MyApp\BranchNewFeature上打开一个分支.
我开发了,当我决定是时候测试它就像我没有做任何改变.我点击了F5,我看到了该应用程序的基线版本...看着它我注意到一个非常奇怪的事实:当我检查IIS Express时,应用程序的"启动路径"是旧的(c:\ Dev\MyApp \主要).
任何人都可以帮助我让IIS Express指向新路径吗?(C:\开发\ MyApp的\ BranchNewFeature)
在编写C#函数时,Azure函数之间ICollector<T>和之间的区别是什么IAsyncCollector<T>(也适用于WebJobs)?
我从样本中了解到这些是我可以用来将函数参数绑定到输出绑定的接口.我也理解这两个接口相应地具有非异步和异步方法签名(即ICollector<T>.Add(item)和IAsyncCollector<T>.AddAsync(item)).但他们在封面下做了什么?它们实际上是将数据发布到输出绑定,还是在函数执行结束时进行内部缓冲和刷新(在这种情况下,为什么会有AddAsync方法)?
我正在尝试从C#应用程序运行PowerShell脚本,当我的C#app作为非管理员用户(例如网络服务或其他域帐户)运行时,我需要运行该脚本.
以前,我使用以下代码:
using (RunspaceInvoke invoker = new RunspaceInvoke())
{
    // load the powershell module
    invoker.Invoke("Import-Module MyModule");
    // run the cmdlet defined in the module 
    invoker.Invoke("MyCmdlet");
}
我不知道这是否是运行模块中定义的cmdlet的最佳方法(如果有更好的方法,请教我!).无论如何,如果我作为管理用户运行,这将完美地运行.我尝试将其作为网络服务运行,然而,我在RunspaceInvoke的构造函数中得到了一个不友好的错误:
不允许请求的注册表访问.
有没有办法可以将我的PowerShell cmdlet作为非提升用户运行,例如网络服务?我不需要或不希望访问注册表.cmdlet本身也不需要提升权限.
从我在OpenID上完成的大部分阅读中,似乎可能需要浏览器.我正在编写一个WCF应用程序,并希望使用OpenID作为身份验证方法,但我的应用程序不是一个Web应用程序.是否可以在不需要Web浏览器的情况下一起使用WCF和OpenID?
我正在尝试 Azure Durable 功能。目前,我在InvalidOperationException调用活动后进入编排功能。它抱怨检测到多线程执行。如果协调器功能之前从不受支持的异步回调中恢复,则可能会发生这种情况。
有没有人遇到过这样的问题?我做错了什么?完整代码可以在GitHub上找到
这是编排函数中的一行:
var res = await ctx.CallActivityAsync<int>("LengthCheck", "inputData");
该LengthCheckactivitiy功能是:
[FunctionName("LengthCheck")]
public static Task<int> Calc([ActivityTrigger] string input)
{
    var task = Task.Delay(TimeSpan.FromSeconds(5));
    task.Wait();
    return Task.FromResult(input.Length);
}
堆栈跟踪是:
ac6fd5cdd07a4dc9b2577657d65c4f27:函数“InpaintOrchestration(Orchestrator)”,版本“”失败并出现错误。原因:System.InvalidOperationException:检测到多线程执行。如果协调器功能之前从不受支持的异步回调中恢复,则可能会发生这种情况。
在 Microsoft.Azure.WebJobs.DurableOrchestrationContext.ThrowIfInvalidAccess()
在 Microsoft.Azure.WebJobs.DurableOrchestrationContext.d__47`1.MoveNext()
从上一个抛出异常的位置开始的堆栈跟踪结束
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
您能否根据它的用途及其差异来定义基于云的身份验证服务Azure AD B2C和B2B(如果有的话).如果可以,请提供网络资源列表.
加载以前创建并存储为XAML的.NET 4.0 Beta2工作流的语法是什么.
WorkflowElement和WorkflowXamlServices类不再存在.我正在尝试做这样的事情(在Beta 1中有效):
WorkflowElement wf = WorkflowXamlServices.Load(File.OpenRead("Workflow.xaml")) as WorkflowElement;
我正在尝试设置一个 Azure Web 应用程序以使用 Azure AD 进行身份验证并在幕后自动刷新 ID 令牌。一篇很棒的博客文章帮助我了解了整个过程是如何运作的:https : //cgillum.tech/2016/03/07/app-service-token-store/
从中链接的本指南帮助我进行了设置:http : //cgillum.tech/2016/03/25/app-service-auth-aad-graph-api/
似乎为 Azure AD 身份验证启用刷新令牌并不那么简单,因此建议我使用上述指南将其设置为 GraphApi。
我遇到的问题是即使在调用“.auth/refresh”端点然后调用“.auth/me”端点之后,唯一刷新的令牌是访问令牌。该令牌对我没有用,因为我在与后端服务器通信时使用了 Id 令牌(使用“授权承载”标头)。
那么如何让 Id 令牌也刷新呢?
我们有一个使用Azure Active Directory“Easy Auth”的单页应用程序(SPA),例如无代码解决方案。当用户第一次打开应用程序时,这似乎工作正常。他们将被重定向到 Microsoft 登录页面,他们可以进行身份验证,然后访问应用程序。
然后,由于它是 SPA,用户将四处导航并仅触发 Ajax 请求。大约 24 小时后,当会话 cookie 过期时,问题就会出现。用户可能仍然打开相同的浏览器选项卡,并且不执行整个页面刷新。然后他们可能正在处理一条记录,并且在某个时候他们的下一个 Ajax PUT 请求失败并出现重定向 HTTP 状态,并且他们失去了工作。
所以他们的关键问题是:
我们如何使 SPA Ajax 请求扩展当前用户的会话,以便他们的会话在主动使用应用程序时不会过期?
Azure AD Easy Auth 服务似乎并不“尊重”用户的活动,这使我们相信会话 cookie 永远不会更新。
注意:我们最近使用 /.auth/refresh 端点进行了一些测试,但这也不能解决问题。
c# ×4
azure ×2
azure-ad-b2c ×1
iis ×1
iis-express ×1
openid ×1
powershell ×1
security ×1
wcf ×1
workflow ×1