我正在建立一个与第三方接口的库.通过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由于其保护级别而无法访问.只能处理公共类型."}
该异常发生在上面代码的第一行.
我希望我的图书馆的课程不公开,因为我不想公开它们.我能这样做吗?如何使用我的通用序列化程序使内部类型可序列化?我究竟做错了什么?
我正试图在我的代码中以编程方式生成一些html,用于我正在设计的用户控件.
我一直在环顾四周,但似乎无法弄清楚如何为我将要显示的内容动态生成一些h1标签.
它只是一个具有特殊属性集的Label吗?
我有一个简单的程序,它有一个函数从多行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我想要代码和我应该把它放在哪里^ _ ^
或者如果有另一种方法可以做到这一点
我有一个数据库,其中包含一个名为Items的表,其中包含以下列:
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) 我在数据库中有一堆数据,我想为其编写搜索功能.问题是我得到了很多重复.数据以名称和姓氏结构,我想只发送一个唯一的两个,所以如果我有两个名字为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++,我正在研究一个应该从硬盘中获取图像然后将其保存为另一个名称的程序.原始图像仍应保留.我已经使用了文本文件,因为我可以这样做:
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格式.
下面是我想使用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) 我想做类似以下的事情:
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)
谢谢,古利
我需要能够在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这样的情况.在那种情况下,使用上述技术仅列出最顶层的窗口.我假设这是因为即使打开了两个(或更多)文件,也只有一个进程.所以,我想我的问题是:如何列出所有窗口而不是其底层进程?
想知道为什么我们应该指定该async方法确实返回Task对象.
指定它似乎是多余的async关键字加上它是混乱,因为你没有真正创建Task对象.
据我所知,编译器会为Task对象创建发出必要的代码(无论是在等待调用还是用新任务包装返回).
我真的不喜欢声明类型和返回类型之间的不一致.
我正在编写一个将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返回null的print语句。它只有在我有的情况下才有效return(x)。我可以使用ironpython捕获打印语句吗?
评论和链接表示赞赏。另外,可以仅使用命令行捕获它吗?
在这里看到jsfiddle
我试图让"阅读更多"链接向下滑动并在点击时显示隐藏的内容,但我似乎无法正确注册点击功能.我做了明显错误的事吗?
基本的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)