小编Ibr*_*taz的帖子

在.Net(C#)中构建Google商品Feed?

下面是我试图遵循的架构:

  <?xml version="1.0"?>
  <rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
  <channel>
     <title>The name of your data feed</title>
     <link>http://www.example.com</link>
     <description>A description of your content</description>
     <item>
       <title>Red wool sweater</title>
       <link> http://www.example.com/item1-info-page.html</link>
       <description>Comfortable and soft ...    cold winter nights.</description>
       <g:image_link>http://www.example.com/image1.jpg</g:image_link>
       <g:price>25</g:price>
       <g:condition>new</g:condition>
       <g:id>1a</g:id>
     </item>
  </channel>
  </rss>
Run Code Online (Sandbox Code Playgroud)

以下是我能够制作的:

<?xml version="1.0"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
  <channel>
    <title>The name of your data feed</title>
    <link>http://www.google.com</link>
    <description>A description of your content</description>
    <item>
      <title>Red Wool Sweater</title>
      <link>http://www.google.com/Red-Wool-Sweater</link>
      <description>Comfortable and soft, this sweater will keep you warm on those cold winter nights.</description>
      <g:image_link>http://www.example.com/image1.jpg</g:image_link>
      <g:price>25</g:price>
      <g:condition>new</g:condition> …
Run Code Online (Sandbox Code Playgroud)

c# xml rss .net-3.5

5
推荐指数
2
解决办法
3299
查看次数

如何解决Blend 4中嵌入式UserControls中的设计时静态资源

短版本 如何处理嵌入到其他窗口/用户/自定义控件中的UserControl中的静态资源查找?因此,Blend 4可以正确地呈现它@设计时Visual Studio已经为您做的事情.

长版本 正如问题所示,我们有一个窗口,其中包含一些嵌入式用户控件,窗口以及每个嵌入式用户控件都使用静态资源标记扩展来解析对app.xaml文件中合并字典中找到的资源的引用.

当单独打开时,Blend在加载和渲染我在VS Designer Surface中创建的任何示例用户控件时都没有问题.解决我无处不在的无数静态资源标记扩展没有问题.

每当我尝试打开我的'MainWindow.xml'时,(一个窗口控件)我注意到我得到4 - 无法使用Blend 4 创建类型错误实例,很好地告诉我ArtBoard它已经捕获了一些设计时异常.通过将VS调试器实例附加到Blend进一步深入研究这些异常我注意到我引用的每一个静态资源,它抱怨它无法找到它.

作为比较,我查看了我创建的自定义控件,它根本不使用任何静态资源,而是使用本地资源.嵌入到我注意到的UserControl中的这个自定义控件非常好用.我觉得很明显为什么!

在SO上有任何人,有任何想法如何解决这个问题?我尝试了整个'添加设计时字典'< - 部分工作,嵌入式用户控件仍然根本没有创建!

研究

  1. MVVM Light + Blend设计器视图错误:找不到名为"Locator"的资源
  2. 主题使用资源而不混合呕吐

更新:可能的解决方案:

  1. 采用这里介绍的类似方法: GianlucaCucco答案
  2. 将所有静态资源查找转换为UserControls的本地资源?
  3. 将所有静态资源查找转换为动态资源.

这些解决方案都不是很漂亮.=(

wpf user-controls expression-blend-4 c#-4.0

5
推荐指数
1
解决办法
4943
查看次数

寻找.Net中'异步'字的解释?

我需要有人来解释以下名字;

  1. 异步代理.
  2. 异步方法.
  3. 异步事件.

我目前正在考虑我的70-536考试,到目前为止,我已经覆盖了我的所有基础.在第二次阅读时,线程章节和在线资源对我来说都很好.尽管如此,上面使用的名字对我来说绝对没有意义?我真的很感激"异步"一词背后的含义及其与代表,方法和事件的相关性.

随意加入您喜欢的细节.

.net c# asynchronous

4
推荐指数
1
解决办法
395
查看次数

从视图绑定到ViewModel中的复杂对象?

比方说,我有以下类型:

    public class Site
    {
       public string Name { get; set; }
       public int SiteId { get; set; }
       public bool IsLocal { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

可以将上述类型分配为在ViewModel中的Propety中保存,如果假定已创建相应的后备字段但在此处省略了ofc:

    public Site SelectedSite
    {
        get { return _selectedSite; }
        set
        {
            _selectedSite = value;
            // raise property changed etc
        }
    }
Run Code Online (Sandbox Code Playgroud)

在我的xaml中,直接绑定将是:

            <TextBlock x:Name="StatusMessageTextBlock"
                   Width="Auto"
                   Height="Auto"
                   Style="{StaticResource StatusMessageboxTextStyle}"
                   Text="{Binding MessageToDisplay,
                                  Mode=OneWay,
                                  UpdateSourceTrigger=PropertyChanged}" />
Run Code Online (Sandbox Code Playgroud)

您可以使用点表示法语法扩展绑定吗?例如:

            <TextBlock x:Name="StatusMessageTextBlock"
                   Width="Auto"
                   Height="Auto"
                   Style="{StaticResource StatusMessageboxTextStyle}"
                   **Text="{Binding SelectedSite.Name,**
                                  Mode=OneWay,
                                  UpdateSourceTrigger=PropertyChanged}" />
Run Code Online (Sandbox Code Playgroud)

看起来像一个有趣的功能,但我的直觉是不,因为我的DC在RunTime分配,所以在DesignTime或CompileTime,我看不到任何可以使这个功能工作的线索?

纠正我,如果误解了复杂的物体是什么,为了这个问题我已经简化了我的想法.

data-binding wpf mvvm complextype c#-4.0

4
推荐指数
1
解决办法
8529
查看次数

无法使用RestSharp下载PDF?

我一直在努力使用restsharp下载在线托管的简单pdf。我已经使用了一个多小时的代码,而我得到的只是空对象结果。

使用GET可以轻松地在POSTMAN中下载文件,而无需设置内容标头,但是还能提供什么呢?

以下是我一直在尝试的点头沙盒测试:

[TestFixture]
public class Sandbox
{
    [Test]
    public void Test()
    {
        var uri = "https://www.nlm.nih.gov/mesh/2018/download/2018NewMeShHeadings.pdf";
        var client = new RestClient();
        var request = new RestRequest(uri, Method.GET);
        //request.AddHeader("Content-Type", "application/octet-stream");
        byte[] response = client.DownloadData(request);
        File.WriteAllBytes(@"C:\temp\1.pdf", response);
    }
}
Run Code Online (Sandbox Code Playgroud)

更新返回流

        var baseUri = "https://www.nlm.nih.gov/mesh/2018/download/";
        var client = new RestClient(baseUri);
        var request = new RestRequest("2018NewMeShHeadings.pdf", Method.GET);
        request.AddHeader("Content-Type", "application/octet-stream");
        var tempFile = Path.GetTempFileName();
        var stream = File.Create(tempFile, 1024, FileOptions.DeleteOnClose);
        request.ResponseWriter = responseStream => responseStream.CopyTo(stream);
        var response = client.DownloadData(request);
Run Code Online (Sandbox Code Playgroud)

现在,将使用下载的数据填充流。

.net c# pdf download restsharp

4
推荐指数
1
解决办法
2395
查看次数

无法解析作用域服务DbContextOptions

我现在一直在寻找有关此问题的明确答案,包括github,但仍然看不到我在这里缺少的内容:

无法从根提供者解析作用域服务' Microsoft.EntityFrameworkCore.DbContextOptions`1 [PureGateway.Data.GatewayContext] '。

在Startup.cs中:

        public void ConfigureServices(IServiceCollection services)
        {
            //other code omitted for brevity

            var connection = Configuration.GetConnectionString("DefaultConnection");
            services.AddDbContext<GatewayContext>(options => options.UseSqlServer(connection));
            services.AddDbContextPool<GatewayContext>(options => options.UseSqlServer(connection));
            services.AddScoped<IGatewayRepository, GatewayRepository>();
        }
Run Code Online (Sandbox Code Playgroud)

用法:

public sealed class MatchBrokerRouteMiddleware
{
    private readonly RequestDelegate _next;
    private readonly ILogger<MatchBrokerRouteMiddleware> _logger;

    public MatchBrokerRouteMiddleware(
        RequestDelegate next,
        ILoggerFactory loggerFactory)
    {
        _next = next;
        _logger = loggerFactory.CreateLogger<MatchBrokerRouteMiddleware>();
    }

    public async Task Invoke(HttpContext context, GatewayContext gatewayContext)
    {
            await _next(context);
    }
Run Code Online (Sandbox Code Playgroud)

我正在使用netcore 2.2。

c# dependency-injection middleware entity-framework-core asp.net-core

4
推荐指数
2
解决办法
1504
查看次数

通过Lambda表达式分配值?

我知道以下引用:

原因是lambda表达式可以转换为委托类型或表达式树 - 但它必须知道哪个委托类型.只知道签名是不够的.

麻烦的是我仍然坚持如何解决我的问题.

有人能说出以下是否可能?

bool isStaff = () => { return selectedPerson.PersonType == "Staff"; };
Run Code Online (Sandbox Code Playgroud)

错误:

无法将lambda表达式转换为类型'bool',因为它不是委托类型

我理解错误,但我真的想知道如何解决这个问题,因为我已多次反复出现这个错误,并且就价值分配而言,根本没有学会如何正确使用lamda表达式.

谢谢快速回复fellas:

国际海事组织,以下是可能的:

bool isStaff = (selectedPerson, bool) => { return selectedPerson.PersonType == "Staff"; };
Run Code Online (Sandbox Code Playgroud)

大声笑,我认为这不行,但在行代码中很漂亮,对我来说看起来很棒,我期待的.下面的答案似乎暗示否则哈哈!

.net c# lambda

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

无法实现具有约束的多通用参数方法?

我有以下接口声明:

public interface IBasePresenter
{
    void Run();
    void ShowDialog<T, M>(T t, M m ) where T : UserControl where M : Form,      ISomeInterface<SomeType>;
}
Run Code Online (Sandbox Code Playgroud)

ShowDialog()基本上是一个向用户显示模式对话框的方法.其中'T'是父Form,M是要显示的唯一对话框.M有多种不同的类型!因此选择通用方法的原因!

我认为可以使用这种方法的几种方法:

Presenter.ShowDialog(this, typeof(Form1)); // FigA
Run Code Online (Sandbox Code Playgroud)

要么

Presenter.ShowDialog(this, new Form1()); // FigB
Run Code Online (Sandbox Code Playgroud)

基于图A或B,示例ShowDialog()方法实现到底是什么样的?

我的问题源于试图计算如何在ShowDialog()方法实现中实例化泛型参数"M".

c# generics interface constraints

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

正确使用异步/等待多个任务到Db

我有一个简单的场景,但我想知道我的方法是否正确,是否更好地建议选择单个任务来保存我的失败订单,或者我可以启动并启动多个任务并等待它们全部完成.在连接到Db和保存实体时,此方案的正确方法是什么.

我已经有一个基于任务的单一版本,可以将一个实体保存到数据库中.

    public async static Task SaveOrdersAsync(OrderService oService, OrderItemService oiService, IEnumerable<OrderTemplate> toSaveList, IUnitOfWork uow, IProgress<string> progress)
    {
        var toSave = toSaveList as IList<OrderTemplate> ?? toSaveList.ToList();
        var tasks = new Task[toSave.Count()];

        for (var i = 0; i < tasks.Length; i++)
        {
            var i1 = i;

            tasks[i] = new Task(() => SaveToDb(oService, oiService, toSave.ElementAt(i1), uow), TaskCreationOptions.PreferFairness);

            var message = string.Format("- Order: {0} has been resaved.\n", toSave.ElementAt(i1).Order.FriendlyId);

            if (progress != null)
                progress.Report(message);
        }

        await Task.WhenAll(tasks);
    }
Run Code Online (Sandbox Code Playgroud)

目前,我已对上述内容进行了测试,并认为任务尚未开始,因为进度条不断循环.我的假设是Task.WhenAll应该为我开始我的任务 - 这就是我的想法?

或者应该在循环中使用它:

      tasks[i] = Task.Run(() …
Run Code Online (Sandbox Code Playgroud)

.net c# task-parallel-library async-await .net-4.5

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

关于在.Net中编写XML文件的问题?

下面是我试图遵循的XML模式:

<?xml version="1.0" encoding="UTF-8"?>

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

   <url>

      <loc>http://www.example.com/</loc>

      <lastmod>2005-01-01</lastmod>

      <changefreq>monthly</changefreq>

      <priority>0.8</priority>

   </url>

</urlset>
Run Code Online (Sandbox Code Playgroud)

以下是我设法制作的内容:

<?xml version="1.0" encoding="utf-8"?>
<urlset>
  <url>
    <loc>http://www.ign.com</loc>
    <lastmod>2005-01-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,有一个主要区别,我似乎无法重新创建'urlset'元素的属性字符串.

以下是我使用的代码:

            // Create the settings object that will define the settings that our writer will use.
        XmlWriterSettings settings = new XmlWriterSettings();
        settings.Encoding = Encoding.UTF8;
        settings.Indent = true;
        settings.OmitXmlDeclaration = false;

        // create the XML writer object.
        XmlWriter xmlW = XmlWriter.Create("SiteMap.xml", settings);

        // write the start header for the XML document.
        xmlW.WriteStartDocument();

        xmlW.WriteStartElement("urlset");

        xmlW.WriteStartElement("url");

        xmlW.WriteElementString("loc", …
Run Code Online (Sandbox Code Playgroud)

c# xml .net-3.5

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

反序列化XML Rest WebApi调用?

我一直在关注一些在线示例,由于某种原因,我无法成功反序列化以下XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<result>
    <postcode>BD1 1LT</postcode>
    <geo>
        <lat>53.793063240118215</lat>
        <lng>-1.7540318423563699</lng>
        <easting>416300.0</easting>
        <northing>433000.0</northing>
        <geohash>http://geohash.org/gcwf00dz21g1</geohash>
    </geo>
    <administrative>
        <council>
            <title>Bradford</title>
            <uri>http://statistics.data.gov.uk/id/statistical-geography/E08000032</uri>
            <code>E08000032</code>
        </council>
        <ward>
            <title>City</title>
            <uri>http://statistics.data.gov.uk/id/statistical-geography/E05001347</uri>
            <code>E05001347</code>
        </ward>
        <constituency>
            <title>Bradford West</title>
            <uri>http://statistics.data.gov.uk/id/statistical-geography/E14000589</uri>
            <code>E14000589</code>
        </constituency>
    </administrative>
</result>
Run Code Online (Sandbox Code Playgroud)

我尝试过各种组合:

[DataContract(Name = "result", Namespace = "")]
public class Result
{
    [DataMember(Name = "postcode")]
    public string Postcode { get; set; }
    [DataMember(Name = "geo")]
    public Geo Geo { get; set; } 
}

[DataContract(Name = "geo")]
public class Geo
{
    [DataMember(Name = "lat")]
    public string Lat { get; …
Run Code Online (Sandbox Code Playgroud)

c# xml deserialization asp.net-web-api

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

将WinForms(C#)APP设置迁移到.config文件

我想将我当前使用的设置文件迁移到appconfig文件.目前我正在尝试复制它,但到目前为止,我甚至无法使用Config'Manager对文件进行写入.

我需要做的是首先创建文件,然后写入它,最后它已经存在,更新它!看起来很简单,但到目前为止,它在每一个转折点都是我.到目前为止我提到的所有材料都存在.甚至MS MCTS参考书也有一个配置文件已经为例子做了.

是否有编程方式创建它,然后写入应用程序的默认bin文件夹,假设您有足够的权限.

这些例子让这看起来很简单,但是当你看到有问题的文件上的时间戳时...... 抓住他的头......帽子掉了!

我的意思是他们是不同类型的配置文件?我知道web.config和app.config但人们真的偏离了这个简单的命名模板???

谢谢你的回复.Ibrar

c# configurationmanager winforms

0
推荐指数
1
解决办法
3404
查看次数

针对COM消费者的泛型和暴露.Net类型?

我记得在我的官方MS 70-536考试中看到一个问题,该问题谈到了一个简单的类,它被设计为暴露给COM调用客户等等,我选择答案的类中定义的所有成员D.使用的那个通用的.

我的问题是你们:

如果您正在设计一个最终由COM调用者或COM类型使用的.Net自定义类型...我已阅读过有关此主题的所有指南,那么泛型就是我不会包含在内的.Net主题为此目的,我会省略这样的数据成员或使用别的东西?

我是否正确地思考这个问题.我一见到这个问题就知道这是仿制药,但我似乎无法证明这一点.当然我没有这样做...泛型是一个.net功能对吗?

.net c# generics

0
推荐指数
1
解决办法
157
查看次数