小编Mik*_*ran的帖子

如何使用XmlSerializer序列化内部类?

我正在建立一个与第三方接口的库.通过XML和HTTP帖子进行通信.那很有效.

但是,无论代码使用哪个库都不需要知道内部类.我使用此方法将内部对象序列化为XML:

internal static string SerializeXML(Object obj)
{
    XmlSerializer serializer = new XmlSerializer(obj.GetType(), "some.domain");

    //settings
    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Indent = true;
    settings.OmitXmlDeclaration = true;

    using (StringWriter stream = new StringWriter())
    {
        using (XmlWriter writer = XmlWriter.Create(stream, settings))
        {
            serializer.Serialize(writer, obj);
        }
        return stream.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我将类的访问修饰符更改为时internal,我在运行时得到一个异常:

[System.InvalidOperationException] = {"MyNamespace.MyClass由于其保护级别而无法访问.只能处理公共类型."}

该异常发生在上面代码的第一行.

我希望我的图书馆的课程不公开,因为我不想公开它们.我能这样做吗?如何使用我的通用序列化程序使内部类型可序列化?我究竟做错了什么?

c# xml oop serialization xml-serialization

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

如何在ASP.NET中以编程方式创建<h1>标记?

我正试图在我的代码中以编程方式生成一些html,用于我正在设计的用户控件.

我一直在环顾四周,但似乎无法弄清楚如何为我将要显示的内容动态生成一些h1标签.

它只是一个具有特殊属性集的Label吗?

c# asp.net

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

c#如何逐行读取和写入多行文本框?

我有一个简单的程序,它有一个函数从多行textBox读取一行当我按下按钮我做的是这个代码:

TextReader read = new System.IO.StringReader(textBox1.Text);
int rows = 100;

string[] text1 = new string[rows];
for (int r = 1; r < rows; r++)
{
    text1[r] = read.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

所以当点击button1时,代码将是这样的:

textBox2=text1[1];
Run Code Online (Sandbox Code Playgroud)

[1]意味着第一行如何通过一次点击自动完成?或者单击第一行到textBox2第二行到textBox3 .....等.

PLZ我想要代码和我应该把它放在哪里^ _ ^

或者如果有另一种方法可以做到这一点

c# string text textbox line

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

在自引用表上编写递归SQL查询

我有一个数据库,其中包含一个名为Items的表,其中包含以下列:

  • ID - 主键,uniqueidentifier
  • 名称 - nvarchar(256)
  • ParentID - uniqueidentifier

name字段可用于构建项目的路径,方法是遍历每个ParentId,直到它等于'11111111-1111-1111-1111-111111111111',这是一个根项.

所以如果你有一个像行一样的表

ID                                   Name        ParentID
-------------------------------------------------------------------------------------
11111111-1111-1111-1111-111111111112 grandparent 11111111-1111-1111-1111-111111111111
22222222-2222-2222-2222-222222222222 parent      11111111-1111-1111-1111-111111111112
33333333-3333-3333-3333-333333333333 widget      22222222-2222-2222-2222-222222222222
Run Code Online (Sandbox Code Playgroud)

所以如果我在上面的例子中查找了一个id为'33333333-3333-3333-3333-333333333333'的项目,我想要的是路径

/grandparent/parent/widget 
Run Code Online (Sandbox Code Playgroud)

回.我试图写一个CTE,因为它看起来就像你通常会完成这样的事情 - 但由于我不做很多SQL,我无法弄清楚我哪里出错了.我已经看了一些例子,这和我似乎能够得到的一样 - 只返回子行.

declare @id uniqueidentifier
set @id = '10071886-A354-4BE6-B55C-E5DBCF633FE6'
;with ItemPath as (
    select a.[Id], a.[Name], a.ParentID 
        from Items a
            where Id = @id

    union all

    select parent.[Id], parent.[Name], parent.ParentID 
        from Items parent 
            inner join ItemPath as a
                on a.Id = parent.id
                    where parent.ParentId = a.[Id]
)
select * from …
Run Code Online (Sandbox Code Playgroud)

sql sql-server recursion common-table-expression

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

在Linq比较

我在数据库中有一堆数据,我想为其编写搜索功能.问题是我得到了很多重复.数据以名称和姓氏结构,我想只发送一个唯一的两个,所以如果我有两个名字为Foo,姓氏只有一个会显示.

无论我如何看待它,我总是回到我需要比较它们.

var names = db.People
      .Where(r => r.Name.Contains(q))
      .OrderBy(r=> r.Name)
       *Psuedo-Code*
       if((this.Name==next.Name)&&(this.surSame==next.Surname)
           toss next data and loop to next
       *Psuedo-Code*
      .Take(5);
Run Code Online (Sandbox Code Playgroud)

也许有点乱,但你明白我想要实现的目标.我能以某种方式做到这一点还是有更好的方法去做?

c# linq

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

读写图像数据C++

我刚刚开始学习C++,我正在研究一个应该从硬盘中获取图像然后将其保存为另一个名称的程序.原始图像仍应保留.我已经使用了文本文件,因为我可以这样做:

ifstream fin("C:\\test.txt");
ofstream fout("C:\\new.txt");

char ch;
while(!fin.eof())
{
    fin.get(ch);
    fout.put(ch);
}

fin.close();
fout.close();
}
Run Code Online (Sandbox Code Playgroud)

但我想这与图像不一样.我是否必须安装lib或类似的东西才能使它工作?或者我可以"只"使用附带的库?我知道我不是C++的专家所以请告诉我,如果我完全错了.

我希望有人可以并且想帮助我!提前致谢!

顺便说一下,图像是.png格式.

c++ image file

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

如何在vb.net中使用try catch并最终阻止?

下面是我想使用try catch和finally块的代码但是我无法做同样的事情,我是编程的新手,请帮我介绍try catch,最后在vb.net下面的代码中阻塞,另外帮助编写finally块,我将检查连接是否打开,I Connection打开然后应该在finally块中关闭但是在检查之后.如果

条件..

else
    'Try
        con.Open()
        adp = New OleDbDataAdapter("select * from Login ", con)

        adp.Fill(dt, "Login")
        Dim i As Integer
        For i = 0 To dt.Tables(0).Rows.Count - 1
            If (cbType.Text = dt.Tables(0).Rows(i).Item(1) And txtUname.Text = dt.Tables(0).Rows(i).Item(2) And txtPass.Text = dt.Tables(0).Rows(i).Item(3)) Then

                MDIParent1.Show()


                Exit Sub


            End If
            '                Catch ex As Exception


        Next

        MsgBox("You Are Not A Valid User!!", MsgBoxStyle.Information)
    End If
Run Code Online (Sandbox Code Playgroud)

vb.net ms-access-2007 visual-studio-2008

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

如何使用字符串和连接访问变量名称

我想做类似以下的事情:

local archetype = "melee"
local meleeNames = { x,y,z }

if itemNumber > # [archetype .. "Names"] then 
    itemNumber = # [archetype .. "Names"] 
end
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何访问变量,这不是它...

[archetype .. "Names"] 
Run Code Online (Sandbox Code Playgroud)

谢谢,古利

variables lua

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

如何使用C#列出活动的应用程序窗口

我需要能够在Windows机器上列出所有活动的应用程序.我一直在使用这段代码......

  Process[] procs = Process.GetProcesses(".");
  foreach (Process proc in procs)
  {
      if (proc.MainWindowTitle.Length > 0)
      {
          toolStripComboBox_StartSharingProcessWindow.Items.Add(proc.MainWindowTitle);
      }
  }
Run Code Online (Sandbox Code Playgroud)

直到我意识到当在他们自己的窗口中打开多个文件时,这不会列出像WORD或ACROREAD这样的情况.在那种情况下,使用上述技术仅列出最顶层的窗口.我假设这是因为即使打开了两个(或更多)文件,也只有一个进程.所以,我想我的问题是:如何列出所有窗口而不是其底层进程?

c# windows

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

在异步返回类型上

想知道为什么我们应该指定该async方法确实返回Task对象.

指定它似乎是多余的async关键字加上它是混乱,因为你没有真正创建Task对象.

据我所知,编译器会为Task对象创建发出必要的代码(无论是在等待调用还是用新任务包装返回).

我真的不喜欢声明类型和返回类型之间的不一致.

c# asynchronous language-design return-type

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

在C#中捕获python打印语句

我正在编写一个将Ironpython函数作为参数的C#组件。

    def test():
        x=x+1
        print "Test"
Run Code Online (Sandbox Code Playgroud)

C#:

    var v = engine.Operations.Invoke(scope.GetVariable("test"));
Run Code Online (Sandbox Code Playgroud)

无功v返回nullprint语句。它只有在我有的情况下才有效return(x)。我可以使用ironpython捕获打印语句吗?

评论和链接表示赞赏。另外,可以仅使用命令行捕获它吗?

c# python ironpython

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

无法获得jQuery单击以正确注册元素

这里看到j​​sfiddle

我试图让"阅读更多"链接向下滑动并在点击时显示隐藏的内容,但我似乎无法正确注册点击功能.我做了明显错误的事吗?

基本的HTML布局

<div id="wrapper">
    <div id="aHidden">some long text here</div> <!--defaulted hidden with css-->
    <div id="aBtn" class="bio-readMore">read more...</div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我试图用来做这个的jQuery:

$(document).ready(function() {
    $("div").each(function(idx) {
        if ($(this).hasClass('bio-readMore')) {
            var thename = this.id.replace("Btn", "Hidden");
            var sel = "#" + thename;
            $(sel).click(function() {
                alert("running click for element with value " + this.id);
                if ($(this).is(":hidden")) {
                    $(this).slideDown("slow");
                } else {
                    $(this).slideUp();
                }
            });
        }
    });
});?
Run Code Online (Sandbox Code Playgroud)

jquery

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