所以我知道什么是pragma,以及它用于什么,但这个词本身的含义是什么?我在代码中多次使用它,但我从来不知道这个词实际意味着什么或代表什么.
我有一个运行的线程,委托一些任务.单个任务完成后,会发出一个事件,说明它已完成.这些任务需要按特定顺序运行,需要等待上一个任务完成.如何让线程等到收到"任务完成"事件?(除了设置标志的明显的事件处理程序,然后是循环轮询标志的while循环)
我有一个在使用WCF连接回服务器的远程系统上运行的任务.任务很可能会抛出异常,我希望将这些异常引导回服务器.基本上我想做这样的事情:
客户:
server.SendException(new UnauthorizedAccessException("Some Exception"));
Run Code Online (Sandbox Code Playgroud)
服务器:
public void SendException(Exception e)
{
throw e;
}
Run Code Online (Sandbox Code Playgroud)
合同:
[ServiceContract]
public interface IServerContract
{
[OperationContract]
void SendException(Exception e);
}
Run Code Online (Sandbox Code Playgroud)
我一直在阅读有关故障异常的一些内容,但根据我的理解,它们用于在通过WCF调用的方法中运行的特定异常.我想要的是发送应用程序抛出WCF上下文之外的任何类型的异常,然后将它们传回服务器进行进一步处理.如果它有助于解决方案,则服务器还具有返回客户端的连接.
使用序列化从RSS提要中读取数据是否可行/可行?我基本上想从我的Netflix队列(从RSS源提供)中提取信息,我正在尝试确定序列化是否可行/可行,或者我是否应该使用类似XMLReader的东西.另外,从URL下载Feed的最佳方法是什么?除了驱动器,我从来没有从任何东西中提取文件,所以我不知道如何去做.
我有一个函数,它在串行端口上调用读或写请求,然后返回读取的值.我正在使用Commstudio express(我正在实现Commstudio中的一个类),但它的超时功能似乎根本不起作用,所以我正在尝试实现自己的超时.目前我有一个定时器,根据请求设置读取或写入端口,如果定时器熄灭,回调将关闭连接导致异常.我试图让计时器的回调抛出一个异常,但异常需要通过调用原始读/写函数的线程传播,所以这样,它起作用,但我觉得它很混乱,那里必须是一个更好的方式来做我想要的.
我正在用C#编写一个Windows服务,它会生成我正在编写的另一个应用程序的多个实例.应用程序有可能安装在计算机上的任何位置.让服务知道应用程序所在位置的最佳方法是什么?
如何从WCF服务应用程序获取客户端的地址?此外,当客户端连接时是否会引发事件,可能还有地址信息?
基本上,我有一个新的桌面应用程序我的团队和我正在研究的将在我们的制造车间的Windows 7桌面上运行.该程序将在引入时大量使用,并需要与我们的制造数据库进行交互.我估计(最终)会有大约100到200台机器同时运行这个应用程序.
我们很幸运,我们从头开始做所有事情,因此我们定义数据库,任何Web服务,程序设计以及上述之间的任何交互.
就像现在一样,我们的遗留应用程序只能直接访问数据库,这很蹩脚.我们希望不要使用新的应用程序.
所以我的问题是,我该怎么做?我知道,模糊不清,但基本上我在这里有很多东西,我不能完全确定正确的方向是什么.
基于我认为其他人所做的事情,我最初的想法是基本上使用webservices来阻止数据库.即,来自场内的所有数据库交互必须通过Web服务进行,通过闭门进行大量数据库逻辑来提供一层安全性.然后,通过Active Directory将Webservice呼叫保护到个人用户.
正如我发现的那样,它有自己的一些含义......我们必须在数据到达应用程序之前对其进行抽象.通过反复使用Web服务调用来破坏或垃圾邮件数据,仍有可能造成恶意滥用.我们已经看过实体框架,并且非常喜欢它提供的内容,但是我可以说,在这种情况下,当我们处于应用程序级别时,它将无法使用.
看起来我无法得出"正确"的结论.那么,什么是对的?
我正在开发一个项目,它将取代我们生产车间的传统软件.我担心的一个问题是,目前,配置文件,脚本缓存等都是纯文本,存储在用户正在使用的系统上.很多这样的东西将被推迟限制访问网络位置,但配置文件之类的东西保持在本地.用户认为他们知道他们正在对系统做什么以及修改配置文件已经成为一个问题.我不希望在新软件中发生这种情况.我应该如何防止这种情况?加密?使用数据库查找进行某种签名/校验和?C#/ .NET提供哪些功能来帮助我解决这个问题?
更新:为了解决评论中提到的一些问题,制造车间的每个用户都可以访问他们正在处理的系统.由于大多数安全性来自限制对网络,Web服务和数据库上的文件夹的访问,因此不太可能很快改变.我同意,权限是理想的,但我必须在我提供的环境中工作.我计划在与IS会面时提出它,看看这是否可能,但现在假设这将在用户具有完全访问权限的系统上.
例如,我在程序集A中定义了以下代码:
public abstract class Message
{
public int ID { get; internal set; }
public Message Parent { get; internal set; }
}
Run Code Online (Sandbox Code Playgroud)
从程序集B开始,我需要执行以下操作:
instanceOfMessage.ID = MethodToGetUniqueIDNumber();
instanceOfMessage.Parent = MethodToGetParent(); // Returns null /w no parent
Run Code Online (Sandbox Code Playgroud)
目前,我正在使用InternalsVisibleTo编译器选项来解决这个问题:
[assembly:InternalsVisibleTo ("AssemblyB")]
// Namespace stuff here
public class Message
{
public int ID { get; internal set; }
}
Run Code Online (Sandbox Code Playgroud)
有点不耐烦,不得不乱用编译器选项来使这项工作.所以,我的问题是:
我的最终目标是某个人,可能只是我和我的团队,应该能够使用消息,但强制执行像ID这样的属性永远不会从管理它们的类之外进行更改.但是,我们仍然需要创建消息实例等.
我的最终目标是我的团队和我应该能够继承第三个程序集中的Message,程序集C.程序集C只知道程序集A.程序集B稍后会动态加载.C将使用A提供的接口向B发送消息.
c# ×9
.net ×7
wcf ×2
c ×1
c++ ×1
database ×1
events ×1
file ×1
installation ×1
pragma ×1
rss ×1
security ×1
serial-port ×1
terminology ×1
timeout ×1
web-services ×1
windows ×1