我有以下问题:
我们有一个加载模块的应用程序(添加).这些模块可能需要app.config中的条目(例如WCF配置).因为模块是动态加载的,所以我不希望在我的应用程序的app.config文件中包含这些条目.
我想做的是以下内容:
注意:我不想覆盖默认的app.config!
它应该透明地工作,以便例如ConfigurationManager.AppSettings
使用该新文件.
在我这个问题的评价,我用同样的解决方案提出了为这里提供:刷新的app.config与NUnit的.
不幸的是,它似乎没有做任何事情,因为我仍然从正常的app.config获取数据.
我用这段代码来测试它:
Console.WriteLine(ConfigurationManager.AppSettings["SettingA"]);
Console.WriteLine(Settings.Default.Setting);
var combinedConfig = string.Format(CONFIG2, CONFIG);
var tempFileName = Path.GetTempFileName();
using (var writer = new StreamWriter(tempFileName))
{
writer.Write(combinedConfig);
}
using(AppConfig.Change(tempFileName))
{
Console.WriteLine(ConfigurationManager.AppSettings["SettingA"]);
Console.WriteLine(Settings.Default.Setting);
}
Run Code Online (Sandbox Code Playgroud)
它打印相同的值twices,虽然combinedConfig
包含除正常app.config之外的其他值.
这是问题所在.我从ViewPage获得IEnumerable,当我尝试转换List时,它显示的错误如下:
'
System.Collections.Generic.IEnumerable<Pax_Detail>
'不包含'ToList'的定义,并且没有System.Collections.Generic.IEnumerable<Pax_Detail>
可以找到接受类型' ' 的第一个参数的扩展方法'ToList' (你是否缺少using指令或汇编引用?)
这是我的控制器代码:
[HttpPost]
public ActionResult Edit_Booking(Booking model, IEnumerable<Pax_Detail> pax)
{
List<Pax_Detail> paxList = new List<Pax_Detail>();
paxList = pax.ToList(); //getting error here
BookingDL.Update_Booking(model, paxList);
return View();
}
Run Code Online (Sandbox Code Playgroud)
我在另一个控制器上应用了相同的逻辑.它工作正常.我不知道它有什么问题.我已经清理,重建项目,并重新启动我的笔记本电脑(虽然它是必要的).
我有以下代码,在类型之间转换项目R
并L
使用异步方法:
class MyClass<R,L> {
public async Task<bool> MyMethodAsync(List<R> remoteItems) {
...
List<L> mappedItems = new List<L>();
foreach (var remoteItem in remoteItems )
{
mappedItems.Add(await MapToLocalObject(remoteItem));
}
//Do stuff with mapped items
...
}
private async Task<L> MapToLocalObject(R remoteObject);
}
Run Code Online (Sandbox Code Playgroud)
这是否可以使用IEnumerable.Select调用(或类似)来减少代码行?我试过这个:
class MyClass<R,L> {
public async Task<bool> MyMethodAsync(List<R> remoteItems) {
...
List<L> mappedItems = remoteItems.Select<R, L>(async r => await MapToLocalObject(r)).ToList<L>();
//Do stuff with mapped items
...
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
"无法将异步lambda表达式转换为委托类型
'System.Func<R,int,L>'
.异步lambda表达式可能会返回void
,Task
或者Task<T> …
我正在尝试使用以下代码将程序固定到Windows 10(RTM)中的任务栏:
$shell = new-object -com "Shell.Application"
$folder = $shell.Namespace((Join-Path $env:SystemRoot System32\WindowsPowerShell\v1.0))
$item = $folder.Parsename('powershell_ise.exe')
$item.invokeverb('taskbarpin');
Run Code Online (Sandbox Code Playgroud)
这适用于Windows 8.1,但不再适用于Windows 10.
如果我执行$item.Verbs()
,我得到这些:
Application Parent Name
----------- ------ ----
&Open
Run as &administrator
&Pin to Start
Restore previous &versions
Cu&t
&Copy
Create &shortcut
&Delete
Rena&me
P&roperties
Run Code Online (Sandbox Code Playgroud)
如您所见,没有动词将其固定到任务栏.但是,如果我右键单击该特定文件,则选项位于:
问题:
我错过了什么吗?
Windows 10中是否有新方法将程序固定到任务栏?
假设以下同步代码:
try
{
Foo();
Bar();
Fubar();
Console.WriteLine("All done");
}
catch(Exception e) // For illustration purposes only. Catch specific exceptions!
{
Console.WriteLine(e);
}
Run Code Online (Sandbox Code Playgroud)
现在假设所有这些方法都有一个异步的对应,我不得不使用那些由于某种原因,所以简单地包裹了整个事情的新任务是不是一种选择.
我将如何实现相同的行为?
我对"相同"的意思是:
我唯一能想到的就是可怕:
var fooTask = FooAsync();
fooTask.ContinueWith(t => HandleError(t.Exception),
TaskContinuationOptions.OnlyOnFaulted);
fooTask.ContinueWith(
t =>
{
var barTask = BarAsync();
barTask.ContinueWith(t => HandleError(t.Exception),
TaskContinuationOptions.OnlyOnFaulted);
barTask.ContinueWith(
t =>
{
var fubarTask = FubarAsync();
fubarTask.ContinueWith(t => HandleError(t.Exception),
TaskContinuationOptions.OnlyOnFaulted);
fubarTask.ContinueWith(
t => Console.WriteLine("All done"),
TaskContinuationOptions.OnlyOnRanToCompletion);
},
TaskContinuationOptions.OnlyOnRanToCompletion);
},
TaskContinuationOptions.OnlyOnRanToCompletion);
Run Code Online (Sandbox Code Playgroud)
请注意:
async/await
不可能.但是,如果它可以async/await
随意显示如何工作.我正在使用C#.net Windows桌面应用程序.我也希望与其他平台一起运行这些应用程序.所以,我使用Mono 2.10作为交叉编译器.运行时,意外地我的应用程序被终止,说错误消息像
错误:无法打开所选文件夹.
无法加载文件或程序集"DocumentFormat.OpenXml.dll,version = 2.0.5022.0,culture = neutral,PublicKeyToken = 31bf3856ad364e35"或其中一个依赖项.
我不知道这里有什么问题...我在c:\ program files\open xml sdk\v2\lib\DocumentFormat.OpenXml.dll上安装了openxml sdk2.0.
并将我的应用程序eXe放在同一个地方进行测试......
请指导我解决这个问题......
我有一个usercontrol,它在与Web服务通信后引发一个事件.父项在引发时处理此事件.我认为正确的方法是将webservice返回的对象作为eventargs传递给父对象???
如果这是正确的方法,我似乎无法找到如何这样做的说明.
用户控件
public event EventHandler LoginCompleted;
Run Code Online (Sandbox Code Playgroud)
然后在服务返回biz对象之后:
if (this.LoginCompleted != null)
{
this.LoginCompleted(this, new EventArgs() //this is where I would attach / pass my biz object no?);
}
Run Code Online (Sandbox Code Playgroud)
亲
ctrl_Login.LoginCompleted += ctrl_Login_LoginCompleted;
....snip....
void ctrl_Login_LoginCompleted(object sender, EventArgs e)
{
//get my object returned by login
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是将用户对象恢复为父级的"已批准"方法是什么?创建一个属性类,一切都可以访问并将其放在那里?
我只是想知道静态的反面是什么?我正在寻找一个词或术语来描述它.
例如:
#region Members
#region Static
private static Settings _Instance = null;
#endregion Static
#endregion Members
#region Properties
#region Static
/// <summary>
/// Gets the current instance of the settings class
/// </summary>
public static Settings Instance
{
get
{
if (_Instance == null)
{
_Instance = new Settings();
}
return Settings._Instance;
}
}
#endregion Static
#region Non Static?
#endregion Non Static?
#endregion Properties
Run Code Online (Sandbox Code Playgroud)
如果我将我的代码分隔到静态和非静态区域,我应该将其称为非静态区域?
它是非静态的吗?或者是否有一个实际的词来描述非静态的方法和属性
这是我如何将一个项添加到IEnumerable对象:
//Some IEnumerable<T> object
IEnumerable<string> arr = new string[] { "ABC", "DEF", "GHI" };
//Add one item
arr = arr.Concat(new string[] { "JKL" });
Run Code Online (Sandbox Code Playgroud)
这很尴尬.但是,我没有看到类似的方法ConcatSingle()
.
有没有更简洁的方法将单个项添加到IEnumerable对象?
谁能告诉我如何使用Exchange Web服务API获取电子邮件正文,收据,发件人,CC信息?我只知道如何获得主题.
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
service.Credentials = new NetworkCredential("user", "password", "domain");
service.Url = new Uri("https://208.243.49.20/ews/exchange.asmx");
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
FindItemsResults<Item> findResults = service.FindItems(
WellKnownFolderName.Inbox,
new ItemView(10));
foreach (Item item in findResults.Items)
{
div_email.InnerHtml += item.Subject+"<br />";
}
Run Code Online (Sandbox Code Playgroud)
我的开发环境是asp.net c#Exchange-server 2010谢谢.
c# ×8
.net ×2
.net-4.0 ×1
app-config ×1
asp.net ×1
async-await ×1
c#-4.0 ×1
ienumerable ×1
moma ×1
mono ×1
openxml-sdk ×1
powershell ×1
terminology ×1
windows-10 ×1