小编Dan*_*Dan的帖子

如何在不成为本地管理员的情况下使用IPC?

我目前在.Net中维护一个内部应用程序.该应用程序使用IPC一次维护一个正在运行的会话; 如果另一个会话尝试打开(某人再次单击该图标,某些会打开一个保存的结果文件),则第二个会话将此信息传达给第一个会话,然后终止,第一个会话然后启动所请求的操作.

我目前使用System.ServiceModel命名空间执行此操作,如下所示:

namespace EventLogViewer.IPCServer {//提供进程与另一个进程通信的通用框架.

[ServiceContract(Namespace = "http://ELV.domain")]
interface IELVLauncher
{
    [OperationContract]
    bool LaunchTabs(String[] fileNames);
}
public delegate void TabLauncher(String[] fileNames);
class ELVLauncherServer : IDisposable
{
    ServiceHost ipcService;
    public ELVLauncherServer()
    {
        Uri baseAddress = new Uri("Http://localhost:45600/elvlauncher/service");
        String address = "net.pipe://localhost/elvlauncher/tablauncher";

        ipcService = new ServiceHost(typeof(ELVLauncher), baseAddress);

        NetNamedPipeBinding binding = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None);
        ipcService.AddServiceEndpoint(typeof(IELVLauncher), binding, address);

        ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
        behavior.HttpGetEnabled = true;
        behavior.HttpGetUrl = new Uri("http://localhost:45601/elvlauncher");
        ipcService.Description.Behaviors.Add(behavior);
        Utilities.WriteMemoryDebugStatement(new DebugStatement(DebugStatement.StatementType.INFO, "Registering IPC Service"));
        ipcService.Open();

    }

    #region IDisposable Members

    public void Dispose() …
Run Code Online (Sandbox Code Playgroud)

c# ipc servicehost .net-3.5

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

C#.Net 3.5使用具有不同返回类型的重载索引器

我有一个父类,基本上是一个美化的列表.它由各种功能的几个子类扩展.

public class HierarchialItemList<ItemType> : IEnumerable<ItemType>
    {
        public ItemType this[String itemCode]
        {
            get
            {
                foreach (IHierarchialItem curItem in hierarchialItems)
                {
                    if (curItem.Code.Equals(itemCode, StringComparison.CurrentCultureIgnoreCase))
                    {
                        return ((ItemType)curItem);
                    }
                }
                return (default(ItemType));
            }
        }
        public ItemType this[Int32 index]
        {
            get
            {
                return (hierarchialItems[index]);
            }
        }
 }

public class DatabaseList : HierarchialItemList<Database>
{
  public DatabaseList this[CommonDatabaseType typeToFilter]
    {
        get
        {
            DatabaseList returnList = new DatabaseList();
            foreach(Database curDatabase in this)
            {
                if (curDatabase.DatabaseType.Equals(typeToFilter))
                {
                    returnList.Add(curDatabase);
                }
            }
            return (returnList);
        }
    }

    public DatabaseList this[Environments.RMSEnvironment …
Run Code Online (Sandbox Code Playgroud)

c# indexer .net-3.5

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

标签 统计

.net-3.5 ×2

c# ×2

indexer ×1

ipc ×1

servicehost ×1