小编Mis*_*sky的帖子

获取本地网络服务器上所有UNC共享文件夹的列表

我正在尝试获取本地Intranet服务器上可用的所有共享文件夹的列表.

System.IO.Directory.GetDirectories()对于像这样的路径来说\\myServer\myShare,这样的工作很好,但是我得到了一条路径的例外\\myServer:

未处理的异常:System.ArgumentException:UNC路径的格式应为\ server\share.

有没有办法获取服务器的所有共享文件夹的列表?最终,我正在寻找一种方法,可以根据给定的路径处理这两种情况 - 返回给定服务器的所有共享列表,并返回给定网络共享文件夹的所有子目录列表.

.net c#

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

创建一个包含已编译类的jar和使用Maven的javadoc

我正在尝试为我们的产品生成一个包含API SDK的jar文件,因此我们的客户可以创建插件并根据我们的API进行编译.我们作为API SDK jar的一部分提供的所有类/接口也包含在我们的主要产品中,因此API开发人员不需要将API SDK jar包含在他们的插件jar中.因此,我并不担心API SDK jar的大小.但是,我想让插件开发人员的生活变得更轻松,只需提供一个包含已编译类和javadoc的jar文件(因此开发人员可以看到内联注释作为开发时自动完成功能的一部分).

我们使用Maven进行编译,并将以下配置添加到API SDK pom.xml中:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.7</version>
            <executions>
                <execution>
                    <id>attach-javadoc</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

这可行,但是这会生成两个jar文件 - 一个包含已编译的类,另一个包含javadoc.相反,我想生成一个包含所有内容的jar文件.

我们目前使用Maven来编译这个项目,但我们可以自由使用其他构建工具.

java javadoc jar maven

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

使用Compiled Lambda表达式而不是Activator.CreateInstance来初始化SoapHttpClientProtocol对象

我正在使用动态实例化SoapHttpClientProtocol对象(代理类)的代码,并使用此对象来调用WS-Basic I Web Service.这是我的代码的简化版本:

public override object Call(Type callingObject,
string method, object[] methodParams, string URL)
{
    MethodInfo requestMethod = callingObject.GetMethod(method);

    //creates an instance of SoapHttpClientProtocol
    object instance = Activator.CreateInstance(callingObject);

    //sets the URL for the object that was just created 
    instance.GetType().InvokeMember("Url", 
    BindingFlags.Public | BindingFlags.Instance | BindingFlags.SetProperty, null,
    instance,
    new object[1] {URL});

    return requestMethod.Invoke(instance, methodParams); 
}
Run Code Online (Sandbox Code Playgroud)

我注意到在某些情况下Activator.CreateInstance()调用会花费大量时间,所以我试图通过使用lambda表达式来优化代码:

public override object Call(Type callingObject,
string method, object[] methodParams, string URL)
{
    MethodInfo requestMethod = callingObject.GetMethod(method);

    //creates an instance …
Run Code Online (Sandbox Code Playgroud)

c# linq reflection activator expression-trees

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

标签 统计

c# ×2

.net ×1

activator ×1

expression-trees ×1

jar ×1

java ×1

javadoc ×1

linq ×1

maven ×1

reflection ×1