小编Pau*_*els的帖子

无法使用C#ConfigurationManager

我有以下代码:

using System.Configuration;

namespace test
{
  public partial class MyService : ServiceBase
  {
    public  static ReadConnectionStrings()
    {                        
      ConnectionStringSettingsCollection connections =
          ConfigurationManager.ConnectionStrings;
Run Code Online (Sandbox Code Playgroud)

但是,它无法识别ConfigurationManager.我直接从这里获取了这段代码

所以我显然遗漏了一些东西,但无法确定是什么.

.net c# configurationmanager .net-3.5

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

在C#中切换语句

有谁知道是否可以在switch语句中包含一个范围(如果是,如何)?

例如:

switch (x)
{
   case 1:
     //do something
     break;
   case 2..8:
     //do something else
     break;
   default:
     break;
}
Run Code Online (Sandbox Code Playgroud)

编译器似乎不喜欢这种语法 - 它也不喜欢:

case <= 8:
Run Code Online (Sandbox Code Playgroud)

c# switch-statement

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

在C#中公开数组元素的属性

我想在C#中创建一个属性,用于设置或返回数组的单个成员.目前,我有这个:

private string[] myProperty;
public string MyProperty[int idx]
{
    get
    {
        if (myProperty == null)
            myProperty = new String[2];

        return myProperty[idx];
    }
    set
    {
        myProperty[idx] = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我得到以下编译错误:

错误的数组声明符:要声明托管数组,等级说明符在变量的标识符之前.要声明固定大小的缓冲区字段,请在字段类型之前使用fixed关键字.

c# arrays properties

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

检查WinRT中的项目中是否存在文件

我有一个WinRT Metro项目,它根据所选项目显示图像.但是,某些选定的图像将不存在.我想要做的是陷入不存在的情况并显示替代方案.

到目前为止,这是我的代码:

internal string GetMyImage(string imageDescription)
{
    string myImage = string.Format("Assets/MyImages/{0}.jpg", imageDescription.Replace(" ", ""));

    // Need to check here if the above asset actually exists

    return myImage;
}
Run Code Online (Sandbox Code Playgroud)

示例调用:

GetMyImage("First Picture");
GetMyImage("Second Picture");
Run Code Online (Sandbox Code Playgroud)

所以Assets/MyImages/SecondPicture.jpg存在,但Assets/MyImages/FirstPicture.jpg没有.

起初我想过使用WinRT相当于File.Exists(),但似乎没有.无需尝试打开文件并捕获错误,我可以简单地检查文件是否存在,或者文件是否存在于项目中?

windows-8 windows-runtime windows-store-apps

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

从Net 4.6.1/4.7引用Net Standard时出错

我有一个最初针对4.6.1的网络应用.此Web应用程序引用类库; 反过来,这引用了Net Standard 1.6类库.

添加对Net Standard库的引用是最新的更改,并且似乎导致它中断:Web应用程序正常工作,直到引入Net Standard库; 在这一点上,我开始得到错误:

无法加载文件或程序集'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.该系统找不到指定的文件.

System.Runtime 包含在Web应用程序中作为NuGet包.

它可能没有关系,但是当我查看packages目录时; 我看到System.Runtime.4.3.0\lib有net45net462目录,但不是4.6.1或4.7(见下文我为什么会这样).

我试过的一些事情没有奏效:

  • 尽管看到这里是4.6.1支持网络标准1.6,我曾尝试升级到4.7,但无济于事.
  • 尝试在web.config中设置程序集重定向.这会稍微改变错误,说它正在寻找4.0.0.0然后重新直接启动,但它基本上是相同的错误.
  • 尝试删除packages目录,看看我是否可以强制刷新(也尝试在System.Runtime上使用Update-Package).
  • 在网上搜索时,我发现了几个类似的问题; 一个在GitHub上(我似乎无法重新定位)暗示对VS2017的更新将解决问题.

网上最近有足够的东西让我觉得我不是唯一经历过这种情况的人; 虽然我没有找到任何解释可能是什么原因.任何人都可以解释可能导致这种情况的原因,或者我可以使用的任何诊断步骤吗?

.net c# asp.net .net-standard

11
推荐指数
1
解决办法
1138
查看次数

如何使用ServiceBus EventData Offset Value

我有一些使用服务总线事件数据的代码,我怀疑我需要使用offset属性,因为目前我的程序(或似乎是)一遍又一遍地重新运行相同的事件中心数据.

我的代码如下:

public class EventHubListener : IEventProcessor
{
    private static EventHubClient _eventHubClient;        
    private const string EhConnectionStringNoPath = "Endpoint=...";
    private const string EhConnectionString = EhConnectionStringNoPath + ";...";
    private const string EhEntityPath = "...";        

    public void Start()
    {
        _eventHubClient = EventHubClient.CreateFromConnectionString(EhConnectionString);
        EventHubConsumerGroup defaultConsumerGroup = _eventHubClient.GetDefaultConsumerGroup();            
        EventHubDescription eventHub = NamespaceManager.CreateFromConnectionString(EhConnectionStringNoPath).GetEventHub(EhEntityPath);

        foreach (string partitionId in eventHub.PartitionIds)
        {
            defaultConsumerGroup.RegisterProcessor<EventHubListener>(new Lease
            {
                PartitionId = partitionId
            }, new EventProcessorCheckpointManager());

            Console.WriteLine("Processing : " + partitionId);
        }
    }

    public Task ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> messages)
    {
        foreach (EventData …
Run Code Online (Sandbox Code Playgroud)

c# azure azure-eventhub .net-4.7

11
推荐指数
1
解决办法
232
查看次数

用C#发送电子邮件

我正在使用.NET 3.5,我想自动发送邮件.我目前正在使用以下内容:

Microsoft.Office.Interop.Outlook.MailItem mailMsg = 
    (Microsoft.Office.Interop.Outlook.MailItem)outlookApplication.CreateItem(
     Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
mailMsg.To = recipient;
mailMsg.Subject = subject;
mailMsg.Body = body;
mailMsg.Send();
Run Code Online (Sandbox Code Playgroud)

但是,我发现有几篇文章似乎暗示我应该使用以下方法:

System.Net.Mail.MailMessage mailMsg = new System.Net.Mail.MailMessage();
mailmsg.To = recipient;
mailmsg.Subject = subject;
mailmsg.Body = body;
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我两个名称空间之间的差异,以及为什么你可能想要使用另一个名称空间?

c# email .net-3.5

10
推荐指数
3
解决办法
2563
查看次数

C#Application.Run没有表格

是否可以调用Application.Run,​​但是不传递表单参数,或者如果没有表单可以调用,是否有替代方法?

Run方法似乎没有任何不接受表单的重载.

例如,如果我想首先实例化一个类,然后调用该表单,那么是否可以执行以下操作:

Application.Run(myClass);
Run Code Online (Sandbox Code Playgroud)

为了澄清,我仍然想要.Run()提供的功能.也就是说,建立一个循环来保持应用程序运行,但不是跟踪表单,而是跟踪类或其他对象.

这最初与紧凑框架有关.我假设这就是为什么Run方法没有我想要的重载.

.net c# compact-framework

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

将背景颜色添加到MediaComposition

我正在尝试创建一个MediaComposition.我成功地将多个png图像组合成一个视频; 但是,创建的文件具有黑色背景.起初我认为这可能是因为文件是png文件,但jpgs也会出现相同的bevaviour.以下是我如何保存图像:

public async Task<bool> Save(InkCanvas canvas, StorageFile file)
{

    if (canvas != null && canvas.InkPresenter.StrokeContainer.GetStrokes().Count > 0)
    {
        if (file != null)
        {
            using (IRandomAccessStream stream = await file.OpenAsync(FileAccessMode.ReadWrite))
            {
                await canvas.InkPresenter.StrokeContainer.SaveAsync(stream);
            }
        }
        Clear(canvas);
        return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

它可以保存图像,但背景是alpha.这意味着当我尝试将这些链接到一个媒体合成中时,没有背景,它呈现为黑色.我在创建MediaComposition时尝试使用叠加来纠正这个问题:

MediaClip overlayVideoClip = MediaClip.CreateFromColor(Colors.White, new TimeSpan(0, 1, 0));
MediaOverlay mo = new MediaOverlay(overlayVideoClip);
MediaOverlayLayer mol = new MediaOverlayLayer();
mol.Overlays.Add(mo);

composition.OverlayLayers.Add(mol);
Run Code Online (Sandbox Code Playgroud)

但无济于事.我怀疑在这种情况下我误解了覆盖一词的含义.所以,我的问题是:是否可以在合成时叠加视频,如果是,如何?或者,如果需要在图像本身中完成,如何使用背景保存图像?

编辑:

我已经取得了进步(?); 以下编译并运行,但创建一个纯黑色图像:

    public async Task TestSave(InkCanvas canvas, StorageFile file)
    {
        RenderTargetBitmap rtb = 
           new RenderTargetBitmap(); …
Run Code Online (Sandbox Code Playgroud)

c# video uwp windows-10-desktop

10
推荐指数
1
解决办法
522
查看次数

以编程方式检查构建配置

使用DEBUG配置,我可以使用以下类型的语法打开和关闭行为:

#if DEBUG
    Console.WriteLine("Debug");
#else
    Console.WriteLine("Not Debug");
#endif
Run Code Online (Sandbox Code Playgroud)

但是,如果我设置了不同的配置,请说:TEST然后这不起作用:

#if TEST
    Console.WriteLine("Test");
#else
    Console.WriteLine("Not Test");
#endif
Run Code Online (Sandbox Code Playgroud)

有没有办法检查这些?

.net c# c-preprocessor preprocessor-directive

10
推荐指数
2
解决办法
7283
查看次数