小编Mil*_*nki的帖子

如何使用ReflectionPermission拒绝反射

我试图在我的应用程序中添加插件,但我不希望插件完全使用反射,插件代码可以是使用Application Domain的沙箱.

我在MSDN上找到了一个AppDomain 示例,但是没有对ReflectionPermision的任何引用,并且Deny安全属性也被折旧,许多属性被折旧,我该如何停止反射呢?

.net c# windows security reflection

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

SQL递归查询

我有一个表类别,

1)Id
2)CategoryName
3)CategoryMaster

数据为:

1计算机0
2软件1
3多媒体1
4动画3
5健康0
6 Healthsub 5

我创建了递归查询:

 ;WITH CategoryTree AS
 (
  SELECT *, CAST(NULL AS VARCHAR(50)) AS ParentName, 0 AS Generation    
  FROM dbo.Category    
  WHERE CategoryName = 'Computers'

  UNION ALL        

  SELECT Cat.*,CategoryTree.CategoryName AS ParentName, Generation + 1    
  FROM dbo.Category AS Cat  INNER JOIN 
  CategoryTree ON Cat.CategoryMaster = CategoryTree.Id
 )

 SELECT * FROM CategoryTree
Run Code Online (Sandbox Code Playgroud)

我得到父类别的结果到底部,就像我得到计算机的所有子类别

但我希望从动画到计算机的自下而上的结果,请一些人建议我正确的方向.

先感谢您 :)

sql sql-server sql-server-2005 recursive-query

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

人工智能,文本分类器

我是AI的新手.我正在通过机器学习来处理文本分类的应用程序.应用程序需要对HTML文档的不同部分进行分类.例如,大多数网页都有头部,菜单,侧边栏,页脚,主要内容等.我想使用文本分类器对HTML文档的这些部分进行分类,并在页面上标识不同类型的表单.

  1. 如果任何人都可以提供关于这个主题的详细指导,将会非常有帮助.
  2. 类似应用的例子也会非常有帮助.

我正在寻找有关代码和实现的更多技术建议.

我可以为html标签属性分配标签,例如class或id

<div class="menu-1">
<div id="entry">
<div id="content">
<div id="footer">
<div id="comment-12">
<div id="comment-title">
Run Code Online (Sandbox Code Playgroud)

喜欢第一项:

TrainClassifier(标签:"菜单",值:"menu-1",属性:"class",position-in-string:"21%",tag:"div");

输入:

  1. "menu-1"(属性值)
  2. 项目清单
  3. "class"(属性名称)
  4. "21"(字符串中的标记位置)
  5. "div"(标签名称)

产量

  1. "菜单"(分类为标签)

什么神经网络库,可以采取上述输入,并将它们分类到标签(即菜单).

所有用户都无法创建正则表达式或xpath,他们需要更简单的方法,因此重要的是,要使软件智能化,用户可以使用webbrowser控件突出显示他/她需要的部分html文档,并训练软件直到它可以独自工作.

但我不知道如何使用AI制作软件列车,

我正在寻找的AI,就像它应该能够接受各种输入,并在此基础上进行分类,正如我已经说过AI的新内容,对它不太了解.

如果我能回答我提出的问题,比如我应该使用哪个库,以及如何实现,建议使用Xpath或Regex或其他方法的答案,那么对我来说会有所帮助.建议,但你需要的.

c# artificial-intelligence bayesian winforms neural-network

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

如何组合两个表达式?

我正在尝试构建一个将应用于IQueryable集合的表达式.

我可以构建一个这样的表达式:

[TestClass]
public class ExpressionTests
{
    private IQueryable<MyEntity> entities;

    private class MyEntity
    {
        public string MyProperty { get; set; }
    }

    [TestInitialize]
    public void Setup()
    {
        entities = new[]
                    {
                        new MyEntity {MyProperty = "first"}, 
                        new MyEntity {MyProperty = "second"}
                    }.AsQueryable();
    }

    [TestMethod]
    public void TestQueryingUsingSingleExpression()
    {
        Expression<Func<MyEntity, bool>> expression = e => e.MyProperty.Contains("irs");
        Assert.AreEqual(1, entities.Where(expression).Count());
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想分开表达式的两个部分:

[TestMethod]
public void TestQueryingByCombiningTwoExpressions()
{
    Expression<Func<MyEntity, string>> fieldExpression = e => e.MyProperty;
    Expression<Func<string, bool>> operatorExpression = e => e.Contains("irs");
    // …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-nhibernate

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

HTTPWebResponse Raw Response,使用Reflection

HTTPWebResponse公开Headers的属性,是否有可能获得原始响应,就像我们使用套接字,Header和Content结合使用Reflection一样,我认为必须有一种方法.

我可以使用套接字,但需要很多工作才能使它们可用,如代理支持,https,进度事件等等...列表很长,我强烈建议使用HTTPWebRequest,唯一的问题是我需要原始头文件响应,我试图下载的网站发送了一个非常长而奇怪的cookie,它不是由HTTPClRequest,WebClient处理的.Wordpress博客,无法使用WebClient登录任何wordpress博客,但使用套接字手动cookie处理它完美,可能是WebClient中的一个错误.

1)只需要原始标题,即可.

2)还有文章链接

文章说HTTPWebRequest存在问题,只有一个线程正在下载而其他线程一直在等待,如果这是真的那么套接字更好?

文章说: 这段代码运行良好但是它有一个非常严重的问题,因为WebRequest类函数GetResponse锁定对所有其他进程的访问,WebRequest将检索到的响应告知为关闭,如前一代码中的最后一行.所以我注意到只有一个线程正在下载,而其他线程正在等待GetResponse.为了解决这个严重的问题,我使用Socket实现了我的两个类MyWebRequest和MyWebResponse.

.net c# sockets windows httpwebrequest

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

如何为Windows窗体应用程序设置外观?

我想将我的应用程序的外观和感觉更改为类似于Office 2007.

是否有现成的,简单的,简单的解决方案?

.net c# windows skinning winforms

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

线程并行调用,操作

我的代码如下

public void DownloadConcurrent(Action<string> Methord)
{
    Action<string>[] methordList = new Action<string>[Concurent_Downloads];

    for (int i = 0; i < Concurent_Downloads; i++)
    {
        methordList[i] = Methord;
    }

    Parallel.Invoke(methordList);
}
Run Code Online (Sandbox Code Playgroud)

Parallel.Invoke给出了错误:

"cannot convert from 'System.Action<string>[]' to 'System.Action[]'"
Run Code Online (Sandbox Code Playgroud)

它调用的方法是

public void DownloadLinks(string Term)
{ 
}
Run Code Online (Sandbox Code Playgroud)

.net c# windows parallel-processing multithreading

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

Math.Round() - LINQ查询

我正在运行LINQ查询,该查询使用本地"let"变量来计算本地值,以与传递给查询的参数进行比较.

我有以下查询:

Items = from lead in Items
        let total = lead.NurtureActions.Count(q => !q.Deleted)
        let completed = lead.NurtureActions.Count(nurtureAction => nurtureAction.Completed && !nurtureAction.Deleted)
        let percentage = Math.Round((Double)((completed/total)*100),0,MidpointRounding.ToEven)
        where 
            total>0 && 
            percentage == progress
        select lead;
Run Code Online (Sandbox Code Playgroud)

上面非常重要的部分是以下行:

let percentage = Math.Round((Double)((completed/total)*100),0,MidpointRounding.ToEven)
Run Code Online (Sandbox Code Playgroud)

正如您在我的查询中看到的那样,我将该查询的结果与progress传递给我的函数进行比较.

例如:我可能会传入值8,因此progress会有值8.但计算的percentage最初可能是8.223,但我需要将其舍入到8.

我相信我这样做是正确的,但由于某种原因,某些东西不能正常工作.

什么可能会抛出四舍五入的想法?我也尝试了AwayFromZero舍入选项,但这也不起作用.

编辑对于那些要求更多信息的人,我不确定它的计算价值.我没有调试LINQ查询的经验,也不知道从哪里开始查找该值是什么.如果我知道如何获得它,我会提供它.

.net c# linq math

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

WPF InteropBitmap到位图

我有一个奇怪的问题。我正在尝试检索已在webbrowser控件中加载的图像。以下代码在WinForms应用程序中可以正常运行:

IHTMLControlRange imgRange = (IHTMLControlRange)((HTMLBody)__ie.NativeDocument.BODY).createControlRange();

            foreach (IHTMLImgElement img in __ie.NativeDocument.Images)
            {
                imgRange.add((IHTMLControlElement)img);
                imgRange.execCommand("Copy", false, null);

                System.IO.MemoryStream stream = new System.IO.MemoryStream();
                using (Bitmap bmp = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap))
                {
                        bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
                        var image = System.Drawing.Image.FromStream(stream);
                }
            }
Run Code Online (Sandbox Code Playgroud)

但是如果我在WPF应用程序中使用相同的代码,则会在

using (Bitmap bmp = (Bitmap)Clipboard.GetDataObject().......
Run Code Online (Sandbox Code Playgroud)

错误如下:

“无法将类型为'System.Windows.Interop.InteropBitmap'的对象转换为类型为'System.Drawing.Bitmap'。”

我该如何解决?

请任何人都可以提供任何指导。

先感谢您。

.net c# browser wpf winforms

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

使用 LINQ 根据字符串将包含的已知子字符串对字符串列表进行分组

我有一个已知的字符串列表,如下所示:

List<string> groupNames = new List<string>(){"Group1","Group2","Group3"};
Run Code Online (Sandbox Code Playgroud)

我还有一个事先未知的字符串列表,如下所示:

List<string> dataList = new List<string>()
{
   "Group1.SomeOtherText",
   "Group1.SomeOtherText2",
   "Group3.MoreText",
   "Group2.EvenMoreText"
};
Run Code Online (Sandbox Code Playgroud)

我想做一个 LINQ 语句,它将获取 dataList 并将其转换为匿名对象或字典,该对象具有组名称的键和包含该组中字符串列表的值。目的是循环组和内部循环组列表,并根据字符串所在的组对字符串执行不同的操作。

我想要一个看起来像这样的数据结构:

var grouped = new
{
   new
   {
       Key="Group1",
       DataList=new List<string>()
            {
               "Group1.SomeOtherText",
               "Group1.SomeOtherText2"
            }
    },
    new 
    {
       Key="Group2",
       DataList=new List<string>()
            {
               "Group2.EvenMoreText"
            }
    }
    ...
};
Run Code Online (Sandbox Code Playgroud)

我知道我可以循环遍历 dataList,然后检查每个字符串是否包含组名称,然后将它们添加到单独的列表中,但我正在尝试学习执行此类任务的 LINQ 方式。

提前致谢。

编辑:

只是有另一个想法...如果我的组名在枚举中怎么办?

public enum Groups
{
    Group1,
    Group2,
    Group3
}
Run Code Online (Sandbox Code Playgroud)

我如何将其放入字典>?

这就是我正在尝试的,但我不确定如何形成 ToDictionary 部分

Dictionary<Groups,List<string>> groupedDictionary =   (from groupName in Enum.GetNames(typeof(Groups))
                                                      from data in dataList …
Run Code Online (Sandbox Code Playgroud)

c# linq group-by

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

真正的并行下载

这个方法我用于并发下载.

public void DownloadConcurrent(Action Method)
        {
            Action[] methodList = new Action[Concurent_Downloads];

            for (int i = 0; i < Concurent_Downloads; i++)
            {
                methodList[i] = Method;
            }

            Parallel.Invoke(methodList);
        }
Run Code Online (Sandbox Code Playgroud)

我正在尝试同时下载网址,但有效下载的数量始终为1.

就像所有下载都会调用一样,但只有一个url会开始下载数据,而不是所有下载都会开始下载.

我希望所有下载同时并行工作,无法实现.

更新:方法正在使用队列,它正在下载不同的URL,形成队列.

.net c# windows webclient download

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

套接字接收挂起

我正在尝试下载,搜索bing页面,并询问使用套接字,我决定使用套接字,而不是webclient.

所述socket.Receive(); 在bing,yahoo,google的情况下,在几个循环后挂起但是可以提问.谷歌循环将收到4-5次,然后冻结通话.

我无法弄清楚为什么?

public string Get(string url)
{
    Uri requestedUri = new Uri(url);
    string fulladdress = requestedUri.Host;
    IPHostEntry entry = Dns.GetHostEntry(fulladdress);
    StringBuilder sb = new StringBuilder();

    try
    {
        using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP))
        {
            socket.Connect(entry.AddressList[0], 80);

            NetworkStream ns = new NetworkStream(socket);

            string part_request = string.Empty;
            string build_request = string.Empty;
            if (jar.Count != 0)
            {
                part_request = "GET {0} HTTP/1.1\r\nHost: {1} \r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nCookie: {2}\r\nConnection: …
Run Code Online (Sandbox Code Playgroud)

.net c# sockets windows screen-scraping

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

使用 Gmail 发送邮件

public static bool SendMail(string toList, string from, string ccList, string subject, string body)
{
    MailMessage message = new MailMessage();
    SmtpClient smtpClient = new SmtpClient();

    try
    {
        MailAddress fromAddress = new MailAddress(from);
        message.From = fromAddress;
        message.To.Add(toList);
        if (ccList != null && ccList != string.Empty)
            message.CC.Add(ccList);
        message.Subject = subject;
        message.IsBodyHtml = true;
        message.Body = body;

        smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
        smtpClient.EnableSsl = true;
        smtpClient.Timeout = 30000;
        smtpClient.Host = "smtp.gmail.com";   // We use gmail as our smtp client
        smtpClient.Port = 587;
        smtpClient.UseDefaultCredentials = true;
        smtpClient.Credentials …
Run Code Online (Sandbox Code Playgroud)

.net c# windows gmail smtp

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